| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:请教各位高手一个有关指针的问题???
只看楼主 加入收藏
Alidesheng
Rank: 2
等 级:论坛游民
帖 子:108
专家分:21
注 册:2010-4-18
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:3 
请教各位高手一个有关指针的问题???
如果int a[3]={2,4,5},*p=a,(*p)[3]=&a;printf("%d\n",*p)与printf("%d\n",(*p){0])的效果是一样的,我想问一下那他们到底有什么区别???还有就是p是一个变量可以++p,那(*p)[3]是变量吗??要怎么去变呢???(*p+1)[0]是合法的,但它可不可以用++这个符号呢,可以的话要怎么用呢???

[ 本帖最后由 Alidesheng 于 2010-5-8 21:47 编辑 ]
搜索更多相关主题的帖子: 指针 
2010-05-08 21:11
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:20 
程序代码:
#include<stdio.h>
int main()
{
    int a[3]={2,4,5};//数组名是个常地址
    int (*p)[3]=&a;//p是指向数组的指针,改变(*p)[3]改变[]里面的系数0,1,2
    //p++的话,p就不指向a了,而且你不知道它指向内存的哪个地方了
    printf("%d\n",p);//这个输出的是地址,一般用%p格式
    printf("%d\n",(*p)[0]);//这个才是第一个数a[0]
    return 0;
}


[ 本帖最后由 jcslt 于 2010-5-8 21:33 编辑 ]

www.
2010-05-08 21:31
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
恩,顶楼上。

南国利剑
2010-05-09 15:13
分贝
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-5-9
收藏
得分:0 
2010-05-09 17:27
快速回复:请教各位高手一个有关指针的问题???
数据加载中...
 
   



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

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