| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3871 人关注过本帖
标题:为什么char指针和int指针进行加加运算后指向地址一样呢?
只看楼主 加入收藏
getmylove
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-17
收藏
 问题点数:0 回复次数:5 
为什么char指针和int指针进行加加运算后指向地址一样呢?
如下图所示,有char类型指针p1和int类型指针p2,对他们进行加加运算后,都指向了同一个地址,char类型指针加加后应该是加1而int类型指针加加后加4才对啊,为什么会指向同一个地址呢?

图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: char 指针 int 指向 地址 
2017-12-17 12:51
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
char ***p1;
int ***p2;
p1和p2指向存放指针类型的地址,大小都一样。
char *p1;
int *p2;
p1指向存放char类型的字符,大小1Byte。
p2指向存放int类型的数值,大小4Byte。
2017-12-17 14:17
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
因为你吧int arr[0]赋值给char*** p1,所以p1被变成int***了
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册



[此贴子已经被作者于2017-12-17 14:29编辑过]

2017-12-17 14:24
getmylove
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-17
收藏
得分:0 
回复 2楼 吹水佬
那为什么p1、p2的值都是4字节呢?
2017-12-17 18:42
getmylove
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-12-17
收藏
得分:0 
回复 3楼 虫眼
谢谢,回去调试一下看看,我以为(char***)arr[0]语句会将int类型转变成char指针类型呢。
2017-12-17 18:45
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用getmylove在2017-12-17 18:42:06的发言:

那为什么p1、p2的值都是4字节呢?

p1、p2指向的都是地址值,通常32位编译地址是用4字节。
2017-12-17 20:06
快速回复:为什么char指针和int指针进行加加运算后指向地址一样呢?
数据加载中...
 
   



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

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