c语言指针类型运算

本文详细解析了C语言中指针类型的运算规则,包括不同类型指针相减、相加的计算方式及其背后原理,帮助读者理解如何正确使用指针进行内存操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c语言指针类型运算

1.指针类型相减

结果会强转为int

char* x;
char* y;
x = (char*)20;
y =(char*)10;

int a = y-x;(结果会转化为整数 并且为2)

上面的例子结果为10 char是1个字节 10/1

int* x;
int* y;
x = (int*)20;
y = (int*)10;
int a = x - y;

上面的例子结果为2 int是4个字节 10/4

总结:

指针类型相减 结果会自动转化为整形,然后运算结果是转化为整形后除以去掉一个星号的宽度

2.指针类型相加

int* x;
int* y;
x = (int*)20;
y = x + 1;
printf("%d", y);

结果会变为24

int* x;
int* y;
x = (int*)20;
y = (int*)10;
int* c = x + y;
printf("%d", c);

编译不通过

总结

指针类型可以跟整数相加进行位移,结果是去掉一个星号后的符号长度

个人总结:

指针是内存区域的地址,里面指向的内容不一定多大,比如malloc 申请的一个内存块,
或者存储的是一个结构体,或者存储的是一个char或int 或者存的本身就是一个指针地
址(二级指针),要看长度必须要去掉一个星后观看长度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值