|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 如下C程序中的指针如何理解?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
685
人关注过本帖
标题:
如下C程序中的指针如何理解?
取消只看楼主
加入收藏
wgrinms
等 级:
新手上路
帖 子:17
专家分:0
注 册:2005-11-4
楼主
收藏
问题点数:0 回复次数:3
如下C程序中的指针如何理解?
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
如上程序中的指针,用Printf()输出的,结果中既有地址又有数值,
何时是地址,何时是数值,一时难以搞懂,请高手指教
[此贴子已经被作者于2005-11-7 20:38:13编辑过]
搜索更多相关主题的帖子:
指针
2005-11-07 20:26
举报帖子
使用道具
赠送鲜花
wgrinms
等 级:
新手上路
帖 子:17
专家分:0
注 册:2005-11-4
第
2
楼
收藏
得分:0
哦,结果中7位数不是地址,那会时什么?
2005-11-07 22:04
举报帖子
使用道具
赠送鲜花
wgrinms
等 级:
新手上路
帖 子:17
专家分:0
注 册:2005-11-4
第
3
楼
收藏
得分:0
以下是引用
踏浪帝国
在2005-11-7 22:25:32的发言:
a[i]是第i行第0列元素地址;
*a[i]是第i行第0列元素的值;
*(a+i)+i是第i行第i列元素地址,故*(*a+i)+i)是第i行第i列元素的值;
*(a+i)同a[i]也表示是第i行第0列元素地址;
(a+i)是第i行首地址;
谢谢你的回复,那倒底如何判断是地址还是值,有没有什么原理所在?
2005-11-07 22:35
举报帖子
使用道具
赠送鲜花
wgrinms
等 级:
新手上路
帖 子:17
专家分:0
注 册:2005-11-4
第
4
楼
收藏
得分:0
终于明白了
1. 2维数组的指针
假设有如下数组定义语句: int array[3][4];
(1)从2维数组角度看,数组名array代表数组的起始地址, 是一个以行为单位进行控制的行指针:
·array+i:行指针值,指向2维数组的第i行。
·*(array+i):(列)指针值,指向第i行第0列(控制由行转为列,但仍为指针)。
·*(*(array+i)):数组元素array[i][0]的值。
用array作指针访问数组元素array[i][j]的格式:
*(*(array+i)
+
j)
注意
:行指针是一个2级指针
C语言规定:
数组名代表数组的地址
,所以array[i]是第i行1维数组的地址, 它指向该行的第0列元素,是一个以数组元素为单位进行控制的列指针:
·array[i]+j:(列)指针值,指向数组元素array[i][j]。
·*(array[i]+j):数组元素array[i][j]的值。
如果有“int array[3][4],*p=array[0];”,则p+1指向下一个元素,如图9-8所示。
用p作指针访问数组元素array[i][j]的格式:
*(p+(
i
*
每行列数
+j) )
2.行指针变量──指向由n个元素组成的一维数组的指针变量
[此贴子已经被作者于2005-11-7 23:17:06编辑过]
2005-11-07 23:13
举报帖子
使用道具
赠送鲜花
4
1/1页
1
快速回复:
如下C程序中的指针如何理解?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.030837 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved