搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么char指针和int指针进行加加运算后指向地址一样呢?
标题:
为什么char指针和int指针进行加加运算后指向地址一样呢?
只看楼主
getmylove
等 级:
新手上路
帖 子:6
专家分:0
注 册:2017-12-17
楼主
问题点数:0 回复次数:5
为什么char指针和int指针进行加加运算后指向地址一样呢?
如下图所示,有char类型指针p1和int类型指针p2,对他们进行加加运算后,都指向了同一个地址,char类型指针加加后应该是加1而int类型指针加加后加4才对啊,为什么会指向同一个地址呢?
搜索更多相关主题的帖子:
char
指针
int
指向
地址
2017-12-17 12:51
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
2
楼
得分:0
char ***p1;
int ***p2;
p1和p2指向存放指针类型的地址,大小都一样。
char *p1;
int *p2;
p1指向存放char类型的字符,大小1Byte。
p2指向存放int类型的数值,大小4Byte。
2017-12-17 14:17
虫眼
等 级:
贵宾
威 望:
10
帖 子:314
专家分:1121
注 册:2017-11-29
第
3
楼
得分:0
因为你吧int arr[0]赋值给char*** p1,所以p1被变成int***了
[此贴子已经被作者于2017-12-17 14:29编辑过]
2017-12-17 14:24
getmylove
等 级:
新手上路
帖 子:6
专家分:0
注 册:2017-12-17
第
4
楼
得分:0
回复 2楼 吹水佬
那为什么p1、p2的值都是4字节呢?
2017-12-17 18:42
getmylove
等 级:
新手上路
帖 子:6
专家分:0
注 册:2017-12-17
第
5
楼
得分:0
回复 3楼 虫眼
谢谢,回去调试一下看看,我以为(char***)arr[0]语句会将int类型转变成char指针类型呢。
2017-12-17 18:45
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
6
楼
得分:0
以下是引用
getmylove
在2017-12-17 18:42:06的发言:
那为什么p1、p2的值都是4字节呢?
p1、p2指向的都是地址值,通常32位编译地址是用4字节。
2017-12-17 20:06
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-483461-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.201891 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved