最近开始重新看《C++ Primer》,在这里记录一些笔记,由于之前学过c,我将记录C++中和c不同的地方,以及一些以前不熟悉的地方。
一、main函数
c++中一个简单的main函数如下:
1 2 3 4 |
int main() { return 0; } |
c++中函数形参列表为空表示函数没有参数。(c语言中必须显示使用void进行说明)
当需要给main传参数时,可以使用第二种形式
1 2 3 4 |
int main(int argc, char *argv[]) { return 0; } |
实际运行时,argc表示参数个数,argv是一个数组,数组中每个元素对应一个参数(c风格字符串形式)。值得注意的是,程序名本身也算一个参数,因此数组argv的第一个元素argv[0]总是指向程序的名字,而从下标1开始才是实际传入的参数。数组最后一个元素后面的元素(也就是argv[argc]) 总是为0 。
例子:编译后可执行文件prog,则在命令行运行
1 |
prog -d -o ofile data0 |
那么在程序内就有
1 2 3 4 5 6 7 |
argc = 5 argv[0] = "prog"; argv[1] = "-d"; argv[2] = "-o"; argv[3] = "ofile"; argv[4] = "data0"; argv[5] = 0; |