指向整数型的指针 C语言指针可以相加吗?为什么?
C语言指针可以相加吗?为什么?指针变量有加减运算,但我们要注意以下几点:1。指针变量存储地址值,即数字地址。例如,指针变量的值是0x20000000,这意味着指针变量将位于0x20000000的内存地
C语言指针可以相加吗?为什么?
指针变量有加减运算,但我们要注意以下几点:
1。指针变量存储地址值,即数字地址。例如,指针变量的值是0x20000000,这意味着指针变量将位于0x20000000的内存地址存储在内存中。指针变量可以加减,但只能用整数数据加减。此时,加法或减法的含义不是对其地址值的加法或减法。换句话说,如果指针变量p的值是0x20000000,那么p=p 2的值不是0x20000002,它不是地址值的简单相加,因此地址值的加减多少与指针指向的数据类型有关。如果在32位操作系统上,P是指向整数数据的指针变量,那么在P=p2之后,P的地址值变成0x2000008,也就是说,地址值实际加了多少:sizeof(int)*2。为了说明白点,我们添加和减去的数字是由指针指向的数据类型度量的。p2表示P在内存中向前移动两个int的距离。如果P不是int类型,而是其他类型,则相同。整数数据的指针减法也是如此。
2. 指针可以减,但不能加:可以减去两个相同类型的指针变量。它们的含义表示两个指针指向的内存位置之间分隔了多少个元素(请注意,它是一个元素,而不是字节数)。例如,对于int类型的指针P和P1,P1-P的含义表示它们之间分隔了多少int类型的元素。其他类型的指针变量也是如此。指针变量的自加和自减实际上是整数1的加和减。
3. 大小可以在指针之间进行比较。但是,它也仅限于同一类型的两个指针变量,比较不同类型指针变量的大小是没有意义的。指针之间大小比较的含义表示它们在内存中指向的位置之间的高低关系。
指针是整数吗,若不是整数,指针为什么可以进行加减运算?
c语言中指针变量可以相加吗?其含义是什么?
当指针指向一个数组元素时,您可以对指针执行以下操作:加一个整数(带或=),减一个整数(带或-=),和自加,如P,P 自减操作,如减去两个指针P--,-P,仅当P1和P2指向数组中的同一元素时才有意义)。