大家好,我是兔飞飞!今天学习指针,这是编程最重要的概念,先理解了取地址(&),再学习指针(*)就是手拿把掐哈哈哈!
指针和&符号(取地址符)关系密切,因为&是用来获取变量的内存地址,而指针正是用来存储这个地址的。我们可以把它理解为一套完整的配合机制:
-
&获取地址&是取地址操作符,用于获取变量的地址。比如:int a = 10; int *p = &a; // 用 & 获取变量 a 的地址,赋值给指针 p
在这段代码中:
a是一个普通变量,值为10。&a是变量a在内存中的地址。p是一个指针,用来保存a的地址。
-
指针存储地址
- 指针就是一种特殊的变量,存储的不是具体的值,而是地址。通过指针可以间接操作地址指向的内容。
int a = 10; int *p = &a; // p 存储 a 的地址 *p = 20; // 修改指针指向的内容,相当于修改 a 的值 printf("%d\n", a); // 输出 20解析:
p = &a:让指针p存储变量a的地址。*p = 20:通过解引用操作符*,修改p所指向的地址(即变量a)的值。
&和指针的关系核心&:取地址,让普通变量与指针“对接”。- 指针:存地址,存储
&提供的地址,作为桥梁。 *:解引用,通过指针访问或操作地址指向的值。
示例:结合指针和&
下面是一个常见的例子:
#include <stdio.h>
void changeValue(int *p) {
*p = 100; // 改变指针指向变量的值
}
int main() {
int x = 10;
printf("Before: %d\n", x);
changeValue(&x); // 用 & 获取 x 的地址,传给函数
printf("After: %d\n", x);
return 0;
}
解析:
&x:把变量x的地址传递给指针参数p。*p = 100:通过指针p修改x的值。- 函数修改的值直接作用在变量
x上,因为指针操作的是地址。
总结关系
&提供 变量的地址。- 指针用来 存储这个地址。
- 通过
*解引用,可以 操作地址对应的值。
它们像一个三人组:
&是消息发送者(传递地址)。- 指针是邮差(保存地址)。
*是拆信人(访问或修改地址对应的内容)。
理解这点,指针的用法会轻松很多!
2728

被折叠的 条评论
为什么被折叠?



