| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:用**pp做形参的问题,想不明白了!
只看楼主 加入收藏
diouf3
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2010-5-8
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:2 
用**pp做形参的问题,想不明白了!
例如
文件file1中:
main(int argc,char *argv[])
这个形式大家都清楚,在命令行输入 FILE1 I LOVE SHENYANG
argc=4,各字符串的首地址就传给了指针数组argv。
main(int argc,char **argv)按照对形参的理解这个应该和上面的main函数等价
但如果同样输入 FILE1 I LOVE SHENYANG 那么在内存中是个什么样的情形呢?
argv这个内存空间应该存放什么呢?还是argv是个数组空间?
搜索更多相关主题的帖子: 形参 
2010-07-30 14:52
BJ_BOY
Rank: 4
等 级:业余侠客
威 望:1
帖 子:77
专家分:225
注 册:2010-2-4
收藏
得分:5 
*agrv[]是一个字符串指针数组,即数组中每一个元素是一个字符串指针。
**argv是一个二重指针,它指向一个字符串指针数组。
2010-07-31 11:05
uppermore
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2010-7-20
收藏
得分:5 
个人感觉,在这种情况下好像是等价的
不过平时要声明一个字符串指针数组的话要指定数组个数的吧?中括号里面是要一个常数的,当然你可以选择直接初始化而不用写常数;
而那个二级指针可没那么麻烦,不过要小心。
话说像你说的情况:
*argv         = "FILE1"  ; **argv = 'F',*(*argv+1)= 'l';
*(argv + 1) = "I"      ; **(argv+1) = 'I';*(*(argv+1)+1) = '\0'
        
2010-08-01 18:16
快速回复:用**pp做形参的问题,想不明白了!
数据加载中...
 
   



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

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