| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1449 人关注过本帖
标题:关于指向一维数组的指针的小问题
取消只看楼主 加入收藏
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:5 
关于指向一维数组的指针的小问题
定义一个指向一维数组的指针,int(*p)[4],已经让其指向一个一维数组,那么请问能进行以下运算吗:
(*p)++,*p=*p+1,
编译显示这两个语句错误,为什么?难道其指向一个数组后就是常指针,不能再被赋值以及自增
2017-02-12 16:18
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 2楼 kin3z
多谢你的答复,但您的看法不对吧,(*p)[4]本来的定义是指向包含四个元素的一维数组,您所说的指向二维数组,比如str[4][4],您所说的指向二维数组实际不准确,应该是指向str[i],i=0,1,2,3,其实是就是指向一维数组,并且我的书上有这样一段代码:
int a[4]={1,3,5,7};
int(*p)[4];
p=&a;
printf("%d\n",(*p)[3]);
不信您可以自己运行下,所以问题应该不在这

............
2017-02-12 19:35
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 4楼 kin3z
您的程序自己没有运行过吗,我试了下,出现了警告,说是不匹配的指针类型,问题就在p=*p+1,等式右边是列指针,是a[1]的地址,而等式右边是行指针,是指向整个一维数组的。并且,如果说我说的p指向一个一维数组后就是常指针,怎么能进行赋值???

............
2017-02-13 15:25
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 5楼 吹水佬
所以我提出的语句错误原因到底是什么,p是常指针吗???请正面回答

............
2017-02-13 15:26
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 8楼 rjsp
哈哈,谢了,你说这个我突然想通了,我原来的问题就不用回答了。就是还想问:p++可以吗???

............
2017-02-13 16:31
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 10楼 吹水佬
嗯,版主对p的解释很到位,谢了

............
2017-02-14 14:48
快速回复:关于指向一维数组的指针的小问题
数据加载中...
 
   



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

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