C语言通过指针引用数组(一维数组)——MZH

高维数组另作整理

在C语言中,数组名本身就是一个指向数组第一个元素的指针。

示例 1: 基本用法

#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr; // 数组名 arr 是一个指向数组第一个元素的指针
// 通过指针遍历数组
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, *(ptr + i));
}
return 0;
}

在这个示例中,arr 是一个整数数组,ptr 是一个指向整数的指针,并且被初始化为指向 arr 的第一个元素。然后通过 *(ptr + i) 访问数组中的每个元素。

示例 2: 修改数组元素

#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr;
// 修改数组元素
for (int i = 0; i < 5; i++) {
*(ptr + i) = *(ptr + i) * 2;
}
// 打印修改后的数组
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
return 0;
}

在这个示例中,通过指针 ptr 遍历数组并修改每个元素的值。

示例 3: 函数中通过指针操作数组

#include <stdio.h>
// 函数声明,通过指针操作数组
void printArray(int *arr, int size) {
for (int i = 0; i < size; i++) {
printf("arr[%d] = %d\n", i, *(arr + i));
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 调用函数,传递数组和大小
printArray(arr, size);
return 0;
}

在这个示例中,定义了一个函数 printArray,它接受一个指向整数的指针和一个整数大小,用于打印数组元素。在 main 函数中,将数组 arr 和其大小传递给 printArray 函数。

示例 4: 动态分配数组并通过指针操作

#include <stdio.h>
#include <stdlib.h>
int main() {
int size = 5;
int *arr = (int *)malloc(size * sizeof(int)); // 动态分配内存
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
// 初始化数组
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
// 通过指针遍历数组
for (int i = 0; i < size; i++) {
printf("arr[%d] = %d\n", i, *(arr + i));
}
// 释放动态分配的内存
free(arr);
return 0;
}

在这个示例中,使用 malloc 动态分配了一个整数数组,并通过指针 arr 访问和操作数组元素。最后,使用 free 释放了动态分配的内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值