运算符&
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;
}
最后修改:2022 年 10 月 11 日
如果觉得我的文章对你有用,只需评论或转发支持,谢绝投喂!