指向数组的指针:
指向数组的指针也称为数组指针。我们使用指针来访问数组的组件。
int a[3] = {3, 4, 5 };
int *ptr = a;
我们有一个指针 ptr 指向数组的第 0 个组件。我们同样可以声明一个指针,它可以指向整个数组,而不仅仅是数组的单个组件。
语法:
data type (*var name)[size of array];
数组指针的声明:
// pointer to an array of five numbers
int (* ptr)[5] = NULL;
上面的声明是指向五个整数数组的指针。我们使用括号来发音指向数组的指针。由于下标比间接具有更高的优先级,因此将间接运算符和指针名称括在括号内是至关重要的。
例子:
// C program to demonstrate
// pointer to an array.
#include
int main()
{
// Pointer to an array of five numbers
int(*a)[5];
int b[5] = { 1, 2, 3, 4, 5 };
int i = 0;
// Points to the whole array b
a = &b;
for (i = 0; i < 5; i++)
printf("%d\n", *(*a + i));
return 0;
}
输出:
1
2
3
4
5
指针数组:
“指针数组”是指针变量的数组。它也被称为指针数组。
语法:
int *var_name[array_size];
指针数组的声明:
int *ptr[3];
我们可以制作单独的指针变量,它们可以指向不同的值,或者我们可以制作一个可以指向所有值的整数指针数组。
例子:
// C program to demonstrate
// example of array of pointers.
#include
const int SIZE = 3;
void main()
{
// creating an array
int arr[] = { 1, 2, 3 };
// we can make an integer pointer array to
// storing the address of array elements
int i, *ptr[SIZE];
for (i = 0; i < SIZE; i++) {
// assigning the address of integer.
ptr[i] = &arr[i];
}
// printing values using pointer
for (i = 0; i < SIZE; i++) {
printf("Value of arr[%d] = %d\n", i, *ptr[i]);
}
}
输出:
Value of arr[0] = 1
Value of arr[1] = 2
Value of arr[2] = 3
示例:我们同样可以创建一个指向字符的指针数组来存储字符串列表。
#include
const int size = 4;
void main()
{
// array of pointers to a character
// to store a list of strings
char* names[] = {
"amit",
"amar",
"ankit",
"akhil"
};
int i = 0;
for (i = 0; i < size; i++) {
printf("%s\n", names[i]);
}
}
输出:
amit
amar
ankit
akhil
想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程。