鱼C论坛

 找回密码
 立即注册
查看: 931|回复: 6

[已解决]main函数含参数问题

[复制链接]
发表于 2020-3-18 21:27:11 | 显示全部楼层 |阅读模式
5鱼币

  1. #include <stdio.h>
  2. main (int argc,char *argv[])
  3. {
  4.         while(argc-->1)
  5.                 printf("%s\n",*++argv);
  6. }
复制代码

这样的一段代码,argv已经是指针数组了,最后以%s输出,后面不应该就是地址吗,为什么要加*取值操作符呢
最佳答案
2020-3-18 21:27:12
  1. char *argv[] ==char** argv
复制代码

你这样子会不会更容易理解点?
printf %s是要求传递一个 char* 类型的指针
一个char** 类型的指针如p 解引用 如*p,这个*p返回的结果不就是一个   char* 类型的指针?
举例:
  1. int main() {
  2.         const char* argv[] = { "aaa.exe","bbb.exe" };
  3.         printf("%s", *argv);
  4.        
  5. }
复制代码

最佳答案

查看完整内容

你这样子会不会更容易理解点? printf %s是要求传递一个 char* 类型的指针 一个char** 类型的指针如p 解引用 如*p,这个*p返回的结果不就是一个 char* 类型的指针? 举例:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 21:27:12 | 显示全部楼层    本楼为最佳答案   
  1. char *argv[] ==char** argv
复制代码

你这样子会不会更容易理解点?
printf %s是要求传递一个 char* 类型的指针
一个char** 类型的指针如p 解引用 如*p,这个*p返回的结果不就是一个   char* 类型的指针?
举例:
  1. int main() {
  2.         const char* argv[] = { "aaa.exe","bbb.exe" };
  3.         printf("%s", *argv);
  4.        
  5. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 10:06:59 | 显示全部楼层
取出来的是数组元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 10:42:27 | 显示全部楼层
楼主你好
首先应该明确main函数的参数的含义:
argc是命令行参数总个数,argv是具体参数,arv[i]就表示是  第i个参数,需要注意的是,argv[0]是可执行程序名

其次,在定义阶段,char *agrv[] 的含义是定义了一个指针变量,它指向的是一个char类型的数组
这段代码的含义是要输出这个main函数的参数,所以,在输出时,要取值,而非地址

另外,带参数的main()函数是要像DOS命令一样能够根据参数执行。ANSI-C(C89/C99)的话main()函数有2种主要形式,第一个是:int main(void),第二个是 int main(int argc, char *argv[])
以上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 16:02:08 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-19 16:03 编辑

    argv 是指针数组,数组元素可不就是指针吗,所以, * argv 是一个指针难道有什么问题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 08:15:02 From FishC Mobile | 显示全部楼层
%p是地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 10:55:09 | 显示全部楼层
本帖最后由 红烧不如清蒸 于 2020-3-20 10:57 编辑

这个的意思是定义一个指针数组,存储的是每个参数对应的地址!,所以需要取值符才能取出对应得参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-4 15:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表