#include <stdio.h>
void Test(int *const a);
int main()
{
int * i;//定义一个整型指针数据
int b = 0;//定义一个整型数据,初始化为0。
i = &b;
//这里给指针变量i赋值,因为是指针变量,所以他的储存类型是一个地址。
//就像int整型一样,int型数据存放的是一个整型数据。这里用 & 号取地址符,取整型变量b的地址,赋值给这个i。
*i = 1;
// i指针变量这时候就已经指向了b的地址,正因为指向了b的地址,通过 * 号解指针操作符,可以对b进行修改
//这里将b的值改为了1,看看实验现象
printf(" b = -> %#x\r\n",b); //b = -> 0x1 正确
//看看b的地址
printf("&b -> %#x\r\n",&b); //&b -> 0x70dc879c
//看看i的地址
printf("&i -> %#x\r\n",&i); //&i -> 0x70dc87a0
//看看对i解指针后的地址
printf("&(*i) -> %#x\r\n",&(*i)); //&(*i) -> 0x70dc879c
//看看i指针变量的值是什么,没错,就是存放的b的地址,因为他指向了b
printf("i -> %#x\r\n",i); //i -> 0x70dc879c
//看看i解指针后的值,是b的值对吧。
printf("*i -> %#x\r\n",*i); //*i -> 0x1
//这里就行了一个函数调用,可以思考一下实验结果,看看对不对,正在掌握没有
Test(&i);
//如果是这样呢?结果是什么
Test(i);
return 0;
}
void Test(int *const a)
{
printf("a -> %#x",*a); //a -> 0x70dc879c
}
指针的真正领悟? 知识补全
最新推荐文章于 2024-03-27 23:36:57 发布