c语言问题,下面printf中为什么一个要加* ,一个不用加
发布网友
发布时间:2024-10-22 18:20
我来回答
共4个回答
热心网友
时间:2024-10-22 19:04
命令行参数嘛,argc是命令行参数个数,argv[ ]是命令行的参数;
头一个printf("%s\n",argv)为输出地址,第二个printf("%s\n",*++argv)其实就等于printf("%s\n",argv[argc--])的啦,输出字符串
热心网友
时间:2024-10-22 19:11
因为argv是个数组名,代表的是地址的值。
热心网友
时间:2024-10-22 19:08
一个输出地址,一个输出的是数
热心网友
时间:2024-10-22 19:10
#include<stdio.h>
int main(int argc, char* argv[]) //char* argv[]是指针数组每个元素是一个char*型指针
{
/*
* 假如程序名字为hello
* 输入China Beijing后
* argv[0] = "hello";
* argv[1] = "China";
* argv[2] = "Beijing";
*/
while(argc>1)
{
++argv;
printf("%s\n", argv); //相当于把argv[0]的地址当成字符串打印,打印出乱码 argv这里相当于二级指针
--argc;
}
// while(argc-->1)
// {
// printf("%s\n", *++argv);//*++argv ==> int i=0; argc[++i]
// }
return 0;
}