#include <stdio.h>
int main()
{
int *p,a=0xAA; //声明 int指针变量 p 和 int变量a
// *p=&a; //把指针p 指向的值 改变为 变量a的地址 ,是无效的
// 因为a的地址长度为4字节,而指针p指向的值为int,即两字节的。
printf("程序运行前的值\n");
printf("p的地址 = 0x%X \n指针p指向的值 = 0x%X \n指针p自己的值 = 0x%X\n",&p,*p,p);
printf("a的地址 = 0x%X \na的值 = 0x%X\n",&a,a);
*p=a; //指针p指向的值 改变为 a的值
printf("\n执行 *p=a; 指令后的值\n");
printf("p的地址 = 0x%X \n指针p指向的值 = 0x%X \n指针p自己的值 = 0x%X\n",&p,*p,p);
printf("a的地址 = 0x%X \na的值 = 0x%X\n",&a,a);
p=&a; //把指针p自己的值 改变为 变量a的地址,同时指针p指向变量a的值了
printf("\n执行 p=&a; 指令后的值\n");
printf("p的地址 = 0x%X \n指针p指向的值 = 0x%X \n指针p自己的值 = 0x%X\n",&p,*p,p);
printf("a的地址 = 0x%X \na的值 = 0x%X\n",&a,a);
return 0;
}
温馨提示:内容为网友见解,仅供参考