int main(int argc,char*argv[])
{ char buf[20];
buf=argv[1];
}
这段程序不是把argv[1]的地址赋给了buf么?为什么编译器提示类型不匹配,但我也看到别人的程序能通过啊。
linux编程,关于main函数的参数argv
答案:3 悬赏:0 手机版
解决时间 2021-04-06 06:46
- 提问者网友:雪舞兮
- 2021-04-05 09:43
最佳答案
- 五星知识达人网友:佘樂
- 2021-04-05 10:48
#include
#include
int main(int argc,char *argv[])
{
char buf[50]={NULL};
//buf=argv[1];//字符串是不能这样直接赋值的
strcpy(buf,argv[0]);//用函数来拷一下...
printf("%s\n",buf);
return 0;
}
#include
int main(int argc,char *argv[])
{
char buf[50]={NULL};
//buf=argv[1];//字符串是不能这样直接赋值的
strcpy(buf,argv[0]);//用函数来拷一下...
printf("%s\n",buf);
return 0;
}
全部回答
- 1楼网友:duile
- 2021-04-05 11:47
int main(int argc,char* argv[]);
argv是命令行参数个数 不带参运行 argc值为1
argv是命令行参数
argv[0]代表程序本身
argv[1]代表第一个参数
以此类推
mmap.c编译好之后得到二进制文件mmap
带两个参数 这样 就ok了:
./mmap 1 abcd.txt
程序中
操作系统为main传递的参数 argc 值为3
argv[0] 为 mmap
argv[1]为 1
argv[2] 为abcd.txt
三个参数都是 char*类型
- 2楼网友:千杯敬自由
- 2021-04-05 10:59
在头文件中添加
#include
在代码中修改 strcpy(buf,argv[i]);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯