c语言main函数一个奇怪的有关问题
c语言main函数一个奇怪的问题main 函数中有两个参数:C/C++ codeint main(int argc,char** argv){}}关于第
c语言main函数一个奇怪的问题
main 函数中有两个参数:
C/C++ codeint main(int argc,char** argv){}
}
关于第二个参数char** argv 等价于:char* argv[].
这是一个指针数组,数组中每个元素都是指向char类型的指针。
问题来了,我在使用带参数的程序:
C/C++ code 1 #include <stdio.h> 2 int main(int argc,char ** argv) 3 { 4 if(argc!=2) 5 printf("Error Parameters\n"); 6 7 else{ 8 if(strcmp(argv[1],"-h")==0) //看这里 9 { 10 printf("hello,world\n"); 11 } 12 else 13 { 14 printf("No this function\n"); 15 } 16 } 17 return 0; 18 }
我是用strcmp直接对比argv[1]和字符串“-h”,是可以比较。
就说明argv[1]存的是console端的字符串。。。
那么上面char* argv[]是指针数组何解?
按我的想法argv[1]应该是存着指向输入字符串的指针,而不是字符串。
argv[1]中我认为应该是一个地址。。。而不是一个值。。。
我的想法和推断哪里有问题。。。
大虾帮忙看看。。。
[解决办法]按我的想法argv[1]应该是存着指向输入字符串的指针,而不是字符串。
====
没错,指针所指的内存里就存着字符串"-h"啊
[解决办法]strcmp函数原型:extern int strcmp(const char *s1,const char * s2);
其实原型就是两个字符指针相比较,所以argv[1](存着指向输入字符串的指针)和字符串“-h”,是可以比较的。
[解决办法]No
Mo
Problem