C语言指针定义

C语言指针定义教程

我们可以使用 指针 来保存一个 变量 的地址,在 C 语言 中我们定义指针变量需要在变量名和类型之间加一个 *,我们要获取一个变量的地址,需要在变量前面加上 &

C语言定义指针变量

语法

type *varName;

参数

参数 描述
type 指针变量的类型。
varName 指针变量名。

说明

我们定义了一个指针变量 varName,其类型为 type*,其中 type 可以是任意的 数据类型

C语言获取变量地址

语法

&varName

参数

参数 描述
varName 要获取地址的变量名。

说明

我们使用 & 符号获取一个变量的地址。

C语言获取指针变量指向的值

语法

*varName

参数

参数 描述
varName 要获取值的指针变量名。

说明

我们使用 * 符号获取一个指针变量所指向的地址的值。

案例

C语言指针变量

定义指针变量

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); int a = 2021; int *pa = &a; printf("a = %d, &a = %p\n", a, &a); printf("*pa = %d, pa = %p\n", *pa, pa); return 0; }

程序运行后,控制台输出如下图所示:

02_C语言定义指针变量.png

我们首先,定义了一个 int 类型 的变量 a,并赋值为 2021,接着,我们定义了一个指针变量 pa,其保存了变量 a 的地址。

定义指针变量我们需要在变量名前面加上 *,同时,获取变量的地址,我们需要使用 &。接着,我们首先使用 printf 打印了变量 a 的值和变量 a 的地址,接着,我们再次使用 printf 打印了 *pa 的值和 pa 的值。

我们发现,变量 a 的值和 *pa 的值相等,变量 pa 的值和变量 a 的地址相等。即,变量 pa 保存了变量 a 的地址,我们使用了 * 可以获取指针变量所指向的变量的值。

指针变量修改指向的值

使用指针变量,可以修改它所指向的变量的值

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); int a = 2021; int *pa = &a; printf("a = %d, &a = %p\n", a, &a); printf("*pa = %d, pa = %p\n", *pa, pa); *pa = 1100; printf("chanage after a = %d, *pa = %d\n", a, *pa); return 0; }

程序运行后,控制台输出如下图所示:

03_C语言指针变量修改指向的变量的值.png

我们使用了指针变量 pa 保存了变量 a 的地址,接着, 我们分别打印了 a 的值、a 的地址、*pa 的值和 pa 的值。

我们发现,pa 的值就是 a 的地址,*pa 的值就是 a 的值,接着,我们给 *pa 重新赋值为 1100,此后,我们再次打印了 a 的值和 *pa 的值,我们发现,a 的值和 *pa 的值都变成了 1100。

这是因为,指针变量 pa 就是变量 a 的地址,*pa 获取的就是 a 的地址所对应的值,这里就是变量 a,因此,我们修改 *pa 的值就是修改了变量 a 的值。

因此,我们可以看出,我们可以通过指针变量来修改其所指向的变量的值。

C语言指针定义教程

我们可以使用指针来保存一个变量的地址,在 C 语言中我们定义指针变量需要在变量名和类型之间加一个 *,我们要获取一个变量的地址,需要在变量前面加上 &