在 C 语言中,指针的修改通常涉及对指针本身的操作
在 C 语言中,指针的修改通常涉及对指针本身的操作(改变指针指向的地址)或对指针所指向的数据的操作(改变指针指向的值)。以下是一些常见的指针修改操作及其示例:
1. 修改指针指向的地址
通过赋值新的地址来改变指针的指向。
c
int *ptr = &a; // ptr 指向 a
printf("Before: *ptr = %d\n", *ptr); // 输出 10
ptr = &b; // 修改 ptr,使其指向 b
printf("After: *ptr = %d\n", *ptr); // 输出 20
2. 修改指针指向的值
通过解引用指针来修改其指向的数据。
c
int num = 5;
int *ptr = #
printf("Before: num = %d\n", num); // 输出 5
*ptr = 10; // 修改 ptr 指向的值
printf("After: num = %d\n", num); // 输出 10
3. 指针算术
指针算术允许通过加减整数来改变指针的地址。
c
int arr[3] = {1, 2, 3};
int *ptr = arr; // 指向数组的第一个元素
printf("Before: *ptr = %d\n", *ptr); // 输出 1
ptr++; // 修改 ptr,使其指向下一个元素
printf("After: *ptr = %d\n", *ptr); // 输出 2
4. 指针与数组
通过指针访问和修改数组元素。
c
int arr[3] = {1, 2, 3};
int *ptr = arr;
// 修改数组元素
*(ptr + 1) = 20; // 将第二个元素改为 20
printf("arr[1] = %d\n", arr[1]); // 输出 20
5. 动态内存分配
使用 malloc 和 free 动态分配和释放内存,并修改指针指向动态分配的内存。
c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *