<C语言> 指针(下)
发布人:shili8
发布时间:2024-11-20 13:05
阅读次数:0
**指针(下)**
在上一篇文章中,我们已经介绍了指针的基本概念、定义和使用。现在,我们将继续讨论指针的更多内容,包括指针运算、指针数组和指针函数。
### 指针运算指针可以进行加法和减法运算,这些运算会改变指针所指向的内存地址。
**例子:**
c#include <stdio.h> int main() { int a =10; int *p = &a; printf("a 的值:%d ", a); printf("p 的值:%p ", p); // 将 p 加上1,得到新的指针 q int *q = p +1; printf("q 的值:%p ", q); return0; }
在这个例子中,我们首先定义一个整型变量 `a`,然后定义一个指向 `a` 的指针 `p`。接着,我们将 `p` 加上1 得到新的指针 `q`。由于 `p` 指向 `a` 的内存地址,而 `a` 占用4 个字节的空间,所以 `q` 将指向 `a` 之后的下一个整型变量。
### 指针数组指针数组是指将多个指针存储在同一个数组中。每个指针都可以独立地访问和操作其所指向的内存地址。
**例子:**
c#include <stdio.h> int main() { int a =10; int b =20; // 定义一个指针数组,包含两个整型指针 int *p[2]; p[0] = &a; // 将第一个指针指向变量 a p[1] = &b; // 将第二个指针指向变量 b printf("a 的值:%d ", *p[0]); printf("b 的值:%d ", *p[1]); return0; }
在这个例子中,我们定义了一个名为 `p` 的指针数组,包含两个整型指针。我们将第一个指针指向变量 `a`,第二个指针指向变量 `b`。然后,我们使用 `*p[0]` 和 `*p[1]` 来访问和输出 `a` 和 `b` 的值。
### 指针函数指针函数是指将一个指针作为参数传递给函数,并在函数内部操作该指针的函数。
**例子:**
c#include <stdio.h> void swap(int *x, int *y) { // 交换 x 和 y 的值 int temp = *x; *x = *y; *y = temp; } int main() { int a =10; int b =20; printf("a 的值:%d ", a); printf("b 的值:%d ", b); swap(&a, &b); // 将 a 和 b 交换 printf("a 的值:%d ", a); printf("b 的值:%d ", b); return0; }
在这个例子中,我们定义了一个名为 `swap` 的函数,该函数将两个整型指针作为参数传递给它,并交换这两个变量的值。我们使用 `&a` 和 `&b` 将 `a` 和 `b` 的地址传递给 `swap` 函数,然后输出 `a` 和 `b` 的值。
### 总结在本文中,我们继续讨论指针的更多内容,包括指针运算、指针数组和指针函数。我们通过例子来演示这些概念,并提供代码注释,以帮助读者更好地理解这些概念。