c语⾔中地址加法与减法
在c语⾔中,假设p为⼀个整型指针,当执⾏p++时,p指针指向的地址并不是增加了1,⽽是增加了4。这个差异是因为在c语⾔标准中,加法与减法运算对于地址的操作和对于值的操作是不同的。
当⼀个加法运算,加号两边的操作数⼀个是指针,另⼀个是⼀个整数时,这个整数值先乘以指针指向的数据类型的⼤⼩(如sizeof(int)),然后再和指针的值相加。
当⼀个减法运算,减号左边的操作数是⼀个指针,右边的操作数是⼀个整数时,这个整数值先乘以指针指向的数据类型的⼤⼩(如
sizeof(int)),然后再被指针的值减去。
当⼀个减法运算,减号两边的操作数都是地址时,则这两个地址的数据类型必须⼀致(如都是int *类型),否则⽆法通过编译。减法运算的结果为地址值的差,再除以该地址的数据类型的⼤⼩(如sizeof(int))。
sizeof 指针
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论