ZhenlongYou 2022-08-22 00:09 采纳率: 83.3%
浏览 24
已结题

main函数参数指针问题

main函数二级指针问题
#include<stdio.h>

int main(int argc,char**argv)
{
printf("%d\n", argc);
for (int i = 0;i < argc;i++)
{
printf("%s\n", argv[i]);
}

return 0;

}

img

为什么main中定义了 char *argv二级指针,而通过argv[i]得到的就是内容,argv[i]=(argv+1),c此时指向的不是仍为一级指针的地址吗?

不是应该*argv[i]才能指向内容吗?

  • 写回答

3条回答 默认 最新

  • nanke_yh GIS领域新星创作者 2022-08-22 10:18
    关注

    你需要理解你存储的最小单元是什么呀。你打印用的都是%s,直接打印的字符串呀。那么它下一级是不是就是字符了,如此*argv[0]就是指向路径字符串中的字符了。
    二级指针也可以等价为二维数组,那么你上面的打印就是打印二维数组内的的每一个字符串呀就是内容,如果带星号了,还要去索引argv[i][j]每一个字符对应得脚标/位置。
    你理解得地址,实际上二维数组内存上指向自己得一个首地址,那么直接取argv则是地址值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月22日