嵌入式技术
指针和数组之间存在着紧密的关系。在本文中,我们将探讨指针和数组的关系、指针算术和数组遍历、多维数组与指针以及指针数组和数组指针。
#include < stdio.h >
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 数组名作为指针使用
// 使用指针访问数组元素
printf("ptr指向 %d n", *ptr);
return 0;
}
arr
赋给指针ptr
,并使用*ptr
访问数组的第一个元素。ptr指向 1
ptr
的值,实现对数组的遍历#include < stdio.h >
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
// 使用指针算术访问数组元素
for (int i = 0; i < 5; i++) {
printf("ptr指向 %d n", *(ptr + i));
}
return 0;
}
ptr指向 1
ptr指向 2
ptr指向 3
ptr指向 4
ptr指向 5
#include < stdio.h >
int main() {
int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int (*ptr)[2] = arr;
// 使用指针访问多维数组元素
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("%d ", *(*(ptr + i) + j));
}
printf("n");
}
return 0;
}
arr
,并将其赋给指针ptr
。1 2
3 4
5 6
#include < stdio.h >
int main() {
int arr1[] = {1, 2, 3, 4, 5}; // 数组
int *arr2[5]; // 指针数组
int (*arr3)[5]; // 数组指针
int i;
// 初始化指针数组
for (i = 0; i < 5; i++) {
arr2[i] = &arr1[i];
}
// 打印指针数组中的元素
printf("指针数组中的元素:n");
for (i = 0; i < 5; i++) {
printf("%d ", *arr2[i]);
}
// 初始化数组指针
arr3 = &arr1;
// 打印数组指针指向的数组中的元素
printf("n数组指针指向的数组中的元素:n");
for (i = 0; i < 5; i++) {
printf("%d ", (*arr3)[i]);
}
return 0;
}
arr1
,一个指针数组arr2
和一个数组指针arr3
。arr2
是一个包含5个元素的数组,每个元素都是一个指向整型变量的指针。arr2[i] = &arr1[i]
将指针数组的每个元素指向arr1
数组的对应元素。*arr2[i]
解引用指针数组中的每个元素,并打印出其值。arr3
是一个指向包含5个整型元素的数组的指针。arr3 = &arr1
将数组指针指向arr1
数组。(*arr3)[i]
访问数组指针所指向的数组中的每个元素,并打印出其值。指针数组中的元素:
1 2 3 4 5
数组指针指向的数组中的元素:
1 2 3 4 5
通过这篇文章,我们学会了
1、利用指针访问和遍历数组
2、指针数组和数组指针的区别
全部0条评论
快来发表一下你的评论吧 !