指针是 存储内存地址 的变量 (刚学,看这个有点懵,看不太懂)
我能看懂的:
int a =0; (变量a存储了0)
int b=1; (变量b存储了1)
那么 指针 是变量 , 我有点 理解为 假如 指针 为a
a是变量,所以指针是变量
这里开始,我发现有点不同了,
变量a是存储了整数的变量=》int a=0;
根据定义,指针是存储了内存地址的变量=》指针=内存地址
通过查阅C语言课本,发现指针是用*定义的 假如它存储的内存地址的数是整型
就定义为 int * p=地址 (对一个变量value取地址,为&value)
所以说 int *p=&value
如果 计算机 = 地球
那么 指针 = 经纬度所确定的 唯一地区
声明指针,是在创建 用于存放地址的 “变量”
即 指针存放地址 (int *p=&value)
既然是变量,那么它的值就可以改变
可以改变 *p;
*p变了,那么 (int *p=&value) 等式右边的&value 也变了
就达到了 “使用指针间接的操作和访问内存的值” 的效果
改变指针,就相当于改变 指针指向的位置的东西
int *p 意味着 p 是一个指针
它指向的位置 可以存储一个整数
改变*p 就可以改变它指向的位置 所存储的整数
以此类推 float *p 指向的位置 可以存储一个浮点数
指针存储了 一个变量的 内存地址
通过使用指针,可以间接的访问和操作内存中的值
相比 int p
int p 只是一个普通的整数变量,它直接存储一个整数值,而不是地址
#include <stdio.h> // 引入标准输入输出库
int main() {
float value = 3.14; // 定义一个浮点数变量value并赋值为3.14
float *p = &value; // 定义一个浮点数指针p,指向value的地址
printf("Value: %f\n", *p); // 输出: Value: 3.140000
*p = 2.71; // 通过指针p修改value的值,将其设置为2.71
printf("Updated value: %f\n", value); // 输出: Updated value: 2.710000
return 0; // 程序正常结束
}