#include<stdio.h>
int main()
{
int urn[5] = { 100,200,300,400,500 };
int* ptr1, * ptr2, * ptr3;
ptr1 = urn; //把一个地址赋给指针
ptr2 = &urn[2]; //把一个地址赋给指针
//解引用指针,以及获得指针的地址
printf("pointer value, dereferenced pointer, pointer address.\n");
printf("ptr1 = %p, *ptr2 =%d, &ptr1= %p\n", ptr1, *ptr1, &ptr1);
//指针加法
ptr3 = ptr1 + 4;
printf("\nadding an int to a pointer:\n");
printf("ptr1 + 4 = %p, *(ptr1 + 4) = %d\n", ptr1 + 4, *(ptr1 + 4));
得到结果:pointer value, dereferenced pointer, pointer address.
ptr1 = 000000BB3D0FF998, *ptr2 =100, &ptr1= 000000BB3D0FF9C8
adding an int to a pointer:
ptr1 + 4 = 000000BB3D0FF9A8, *(ptr1 + 4) = 500
问ptr1的地址在加整数4之后为什么地址会变成000000BB3D0FF9A8,有没有地址的计算方法。怎么算出ptr1+4的地址。