【c++笔记】void*指针和main()参数
关于void在指针的应用:
void表示“无类型”,void *表示无类型指针。在定义指针的时候,必须声明指针的类型,因为类型决定了指针移动的字节数。
例:
1
2
3
4
5
6
7double d=3.14;
double *dptr=&d;
int *iptr=dptr; //错误,double和int占用不同的字节,编译报错。
double d=3.14;
double *dptr=&d;
void *vptr=dptr //正确,无类型指针可以接受任何类型的指针。main(int argc,char *argv[ ])
1.argc为整数
2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[][] ,argv是一个指针数组)
3.下面给出一个例子来理解这两个参数的用法:
假设程序的名称为prog,
当只输入prog,则由操作系统传来的参数为:
argc=1,表示只有一程序名称。
argc只有一个元素,argv[0]指向输入的程序路径及名称:./prog
当输入prog para_1,有一个参数,则由操作系统传来的参数为:
argc=2,表示除了程序名外还有一个参数。
argv[0]指向输入的程序路径及名称。
argv[1]指向参数para_1字符串。
当输入prog para_1 para_2 有2个参数,则由操作系统传来的参数为:
argc=3,表示除了程序名外还有2个参数。
argv[0]指向输入的程序路径及名称。
argv[1]指向参数para_1字符串。
argv[2]指向参数para_2字符串。
4.举例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
241 /*************************************************************************
2 > File Name: read_main_param.c
3 > Author: Mr.Yang
4 > Purpose:读取主函数中的参数
5 > Created Time: 2017年06月01日 星期四 09时46分38秒
6 ************************************************************************/
7
8
9
10
11 int main(int argc,char *argv[])
12 {
13 printf("%s\n",argv[0]);//读取可执行程序(包括路径)
14
15 /*读取参数*/
16 int i = 1;
17 while(i < argc)
18 {
19 printf("%s\n",argv[i]);
20 i++;
21 }
22 //说明在dos和unix环境下,用""扩起来的表示其是一个字符串,代表着一个参数
23 return 0;
24 }
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BRUCE!
