首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言main函数一个奇怪的有关问题

2012-09-03 
c语言main函数一个奇怪的问题main 函数中有两个参数:C/C++ codeint main(int argc,char** argv){}}关于第

c语言main函数一个奇怪的问题
main 函数中有两个参数:

C/C++ code
int 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

热点排行