- 论坛徽章:
- 0
|
我想问的是,带参数的main函数在编译后执行时,为什么实际带的参数中不能输入实参argc呢?
一般我们在调用函数的时候,不是都可以把所有的形参都赋值的么?
用个简单的例子代表一下我的困惑:
[root@localhost c]#
[root@localhost c]# cat ta.c
#include<stdio.h>
int main(int argc,char**argv)
{
int i;
for(i=0;i<=argc;i++)
printf("argv:%s\n",argv);
}
[root@localhost c]# gcc ta.c -o ta
[root@localhost c]# ./ta aa bb cc dd //此处为什么不用加入int类型的实参就可运行呢?
argv:./ta
argv:aa
argv:bb
argv:cc
argv:dd
argv null)
[root@localhost c]#
[root@localhost c]# ./ta 5 aa bb cc dd //此处为什么我加了个5进去,反而被认为是个char型?
argv:./ta
argv:5
argv:aa
argv:bb
argv:cc
argv:dd
argv null)
[root@localhost c]# |
|