首页 > 其他分享 >臭名昭著的“Hello,World!”

臭名昭著的“Hello,World!”

时间:2023-05-23 14:14:38浏览次数:35  
标签:argc return int 臭名昭著 argv exit World main Hello

Windows平台下的c++集成开发环境(Integrated Development Environment,IDE)有很多种,例如微软的Visual studio 2022、Visual Studio Code两款IDE,前者偏向企业级的重量级代码开发,后者偏向数据科学界的轻量级高度可配置性开发。还有CLion,其是JetBrains开发的现代IDE,旨在Windows,Linux和MacOS等各种平台上运行C和C ++。这些开发套件包含有最基本的文本编辑、代码编译、Debug功能(仿真调试,追踪代码运行过程)、图形用户界面等功能,对用户来说十分友好。具体选择哪款IDE是仁者见仁智者见智的问题,但普遍选择标准是界面美观性、编码编写的便捷性、代码跨平台性等。我这里为了方便选择酷炫的Visual Studio Code。假设你已经安装了VS code并配置好了c++运行环境(如何下载和配置网上教程多如牛毛,据说环境配置是程序员的一大拦路虎,不知道真假!还没入门就死在环境配置上了)。   据说深度学习各种包配置劝退了一波程序员 IDE配置好后,我们就开始进入正题:程序员的骨灰级示例代码,Hello World!

#include <iostream> 
using namespace std; 
int main(int argc, char** argv) 
{ 
    int input = 10; 
    cout << "Hello, world!\n" << endl; 
    cin >> input; 
    return 0; 
}
短短的8行代码包含的信息量不少
  • 标准库 其使用到了c++标准库iostream。c++属于高级语言,其包含有很多封装好的库,所以学习库如何使用及其原理也是至关重要的。iostream是c++的常用标准库之一内部包含了很多我们常用的流文件的处理,如输入和输出。为了防止库与我们自定义的变量名称冲突,所以它使用了命名空间,封装的命名空间名称为std。
  当我们使用标准库里的变量或者对象时,有两种方式,其一是在文件开头使用using namespace xxx;其二是直接使用xxx:yyy(xxx是命名空间,如std,yyy是命名空间里声明的对象,如cin)。前者属于全局性的,把所有命名空间里声明的对象都包含进来了,后者将灵活性交给程序员,使用到什么对象时,再包含进来。为了编写代码方便,推荐使用第一种。 //其一: using namespace std; cout << "Hello, world!\n" << endl; //其二 std::cout << "Hello, world!\n" << std::endl; 下图是std命名空间声明的部分对象截图 ​  
  • int main(int argc, char** argv) 系统运行的初始函数就是main函数,其第一个参数是argc(argument count)表示需要传入的参数个数,第二个参数是argv(argument value)表示需要传入的参数值。默认argc值为1,argv里保存的是程序的名称。至于为什么argv第一个保存的是程序的名称,可能是因为程序员会用到?不是我们需要关心的问题。
#include <iostream> 
using namespace std; 
int main(int argc, char** argv) 
{
     cout << "argc = " << argc << endl; 
     cout << "argv[0] = " << argv[0] << endl;
     return 0; 
}
​ main函数传入三个参数案例
#include <iostream> 
using namespace std; 
int main(int argc, char** argv) 
{ 
    cout << "argc = " << argc << endl; 
    cout << "argv[0] = " << argv[0] << endl; 
    if(argc == 3) 
    { 
        int a = stoi(argv[1]); 
        int b = stoi(argv[2]); 
        cout << "a+b = " << a+b << endl; 
    } 
    else 
    { 
       cout << "传入的参数个数不对"<<endl; 
    }
    return 0;
}            
View Code

 

​ 当项目有需求,如让你写个小工具自动化批处理文件时,使用命令行给main函数传参就会显得很实用。
  • main函数返回值
  • 编写main函数梭哈return 0可不是个好习惯,应该根据不同情况返回不同值,方便程序执行过程中就可以得知程序是那个环节出现问题。
  • main函数中的return 0是返回给操作系统的,如不需要返回给操作系统可定义void main(),常见于单片机程序。
  • return 0 exit(0) _exit(0)区别,
  1. return是关键字,exit(0)和_exit(0)是函数
  2. return是返回给上一级,exit(0)和_exit(0)是退出进程,在main函数里,return 0 和 exit(0) 效果一样
  3. exit(0)退出进程前刷新IO缓冲区,_exit(0)属于内核中的系统调用,不会刷新IO缓冲区
  4. 详细区别见https://www.zhihu.com/question/545048629
臭名昭著的“Hello,World!”果然不简单

标签:argc,return,int,臭名昭著,argv,exit,World,main,Hello
From: https://www.cnblogs.com/weihfz/p/17424909.html

相关文章

  • <Python全景系列-1> Hello World,1分钟配置好你的python环境
    《从此开始:1分钟配置好你的python环境》欢迎来到我们的系列博客《Python360全景》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是我......
  • hello FlowUs
    Notion关于Notion个人觉得还是比较好用的,无奈链接不够顺畅语雀分享页面需要付费,这个。。。。。FlowUs目前使用FlowUs感觉还行,接入了AI,至于操作都类似,期待使用的体验[注册链接:](https://flowus.cn/login/?code=NYLC9N)......
  • str.split("Hello World") 类方法使用方法:类名.方法名(“参数”)
    s=str.split("HelloWorld")#['Hello','World']s="HelloWorld".split()#['Hello','World']s=str.upper("HelloWorld")#HELLOWORLDs=str.isalpha('56')#Fal......
  • HelloWorld
    1.依赖<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.8.0</version></dependency><dependency><groupId>commons-io</groupId><artif......
  • 一、Hello world
    一、运行环境编辑器:https://remix.ethereum.org/可以在线编辑,也可以下载到本地,在线编辑适合新手学习solidity代码。 二、helloword1、新建一个文件,取名demo.sol, 编写如下代码,代码很简单,定义一个状态变量message和函数f1,函数返回状态变量message的值。//SPDX-License-......
  • <Python全景系列-1> Hello World,1分钟配置好你的python环境
    《从此开始:1分钟配置好你的python环境》欢迎来到我们的系列博客《Python360全景》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是......
  • A_hellow_world
    HellowWorld首先,我用的是IDEA进行Java语言学习及开发编辑操作的快捷键表格:IntelliJIDEA后面可能用到的好的,以下是所有智能代码补全功能的代码联想关系列表:触发关键词代码联想cast(CastType)objectelseif(condition){}else{}forifor(inti=0;i<......
  • C基础笔记(Hello world)
    第一个程序Helloworld#include<stdio.h>  //包含语句//intmain()   //主函数//{ //printf(“Helloworld!”); //输出函数//getchar();//等待一个字符 //return0;......
  • OS版hello world
    OS版helloworld其实就是让BIOS拉起一个裸机汇编(实模式),对应是保护模式。ds段寄存器。写一个汇编程序helloOs.S#以下是AT&T的语法,$开头表示立即数(如自定义符号代表的偏移量)%开头表示寄存器BOOTSEG=0x7c0#0x7c00.code16#告诉汇编编译器as把当前汇编翻译成16位的指令,若......
  • 1011 World Cup Betting
    Withthe2010FIFAWorldCuprunning,footballfanstheworldoverwerebecomingincreasinglyexcitedasthebestplayersfromthebestteamsdoingbattlesfortheWorldCuptrophyinSouthAfrica.Similarly,footballbettingfanswereputtingtheirmoney......