| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1436 人关注过本帖
标题:请教:二维数组地址输出编译器会自动除于变量长度么
只看楼主 加入收藏
natto
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2016-4-10
结帖率:70%
收藏
已结贴  问题点数:10 回复次数:2 
请教:二维数组地址输出编译器会自动除于变量长度么
据谭教授所著书中,写出如下实验程序:
大家可以看到如下附件的图,怎么最后一个printf出来的是1呢,不是应该是4么,编译器会自动把地址除4?还是我哪里理解有误或是程序编写有误?
图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: 编译器 程序编写 
2016-04-26 21:25
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:5 
p 是 int型指针,步长是sizeof(int)
p = &a[2]
q = &a[3]
q = p + 1
看看:
    printf("%d\n", sizeof(int));
    printf("%d\n", p);
    printf("%d\n", q);
    printf("%d\n", p+1);




[此贴子已经被作者于2016-4-26 21:44编辑过]

2016-04-26 21:42
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:5 
当两个指针指向同一个数组,指针相减编译器会自动进行步长计算,也就是实际得到的是间隔的元素个数而不是字节数。

未佩好剑,转身便已是江湖
2016-04-26 22:41
快速回复:请教:二维数组地址输出编译器会自动除于变量长度么
数据加载中...
 
   



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

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