| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1180 人关注过本帖
标题:这个程序参数是如何传递的?
只看楼主 加入收藏
hddgwxn586
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2017-5-18
结帖率:66.67%
收藏
 问题点数:0 回复次数:3 
这个程序参数是如何传递的?
这个程序参数是如何传递的,分析一下执行过程

void fun(char **m)
{
  ++m;
printf("%s\n",*m);
}
void main()
{
 char *a[]={"what","how","why"};
fun(a);
}

[此贴子已经被作者于2017-5-28 22:59编辑过]

搜索更多相关主题的帖子: 如何 
2017-05-28 22:16
zqszqs10
Rank: 1
等 级:新手上路
帖 子:14
专家分:3
注 册:2016-10-27
收藏
得分:0 
指针数组与普通的数组传递是一个道理,直接传首地址过去,只不过指针的地址需要二级指针来指向它。
2017-05-28 22:33
何小达
Rank: 2
等 级:论坛游民
威 望:1
帖 子:24
专家分:70
注 册:2017-5-25
收藏
得分:0 
因为**m是二级指针,只是一个单纯地字符指针,所以他接受的只是&a[0]的数组地址,而m++则在&a[0]的基础上加了一位,变成了&a[1],所以输出的时候就是how了
2017-05-30 15:07
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
指针数组和一般二维数组表示方式一个不同的地方就是它储存的变量值可以读取~加&读取的是常量~而没有加&的可能是变量(判断是否为常量还要看具体数据类型或者看看是否是宏)~~

[此贴子已经被作者于2017-5-30 15:26编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-30 15:24
快速回复:这个程序参数是如何传递的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053637 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved