运算符&
scanf("%d,&i");
//&用于获取变量地址 操作数必须是变量
int i;
printf("0x%x",&i);
//“0x16进制0x16进制
//是一个数学术语,指的是以0x开始的数据表示16进制
//%x以十六进制数形式输出整数
//故程序内容为以十六进制形式输出i的变量地址
//报错Warning
printf("%p",&i);
//输出i的变量地址 默认十六进制
//以上代码输出结果相同
#include <stdio.h>
int main()
{
void change(int* p1, int* p2);
printf("Program Start\n");
int i = 1;
int a = 0;
int b = 1;
change(&a, &b);
printf("%d %d\n",a,b);
printf("Size of i = %d\n", sizeof(i));
printf("Size of i = %d\n", sizeof(&i));
printf("Second Part\n");
int* point1;
int *point2;
int* point3, * point4;
point1 = point2 = point3 = point4 = &i;
printf("Point1成功获得了指针=%p\n", point1);
printf("输出Point1地址的值=%d\n",*point1);
printf("重新给定Point地址的值\n");
scanf_s("%d", &*point1);
printf("输出Point地址/i变量的值=%d\n", i);
//scanf_s("%d", i); 错误示例
printf("输出Point1地址的值=%d\n", *point1);
}
void change(int *p1, int* p2)//交换函数
{
int z = *p1;
*p1 = *p2;
*p2 = z;
}