永发信息网

linux编程,关于main函数的参数argv

答案:3  悬赏:0  手机版
解决时间 2021-04-06 06:46
  • 提问者网友:雪舞兮
  • 2021-04-05 09:43
int main(int argc,char*argv[])
{ char buf[20];
buf=argv[1];
}
这段程序不是把argv[1]的地址赋给了buf么?为什么编译器提示类型不匹配,但我也看到别人的程序能通过啊。
最佳答案
  • 五星知识达人网友:佘樂
  • 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;
}
全部回答
  • 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]);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯