指向数组的指针:
指向数组的指针也称为数组指针。我们正在使用指针来访问数组的组件。
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基础课程》。