整数指针数组的元素是否可以指向整数数组?

Whether the element of an integer pointer array can pointer to an integer array?

本文关键字:整数 数组 是否 指针 元素      更新时间:2023-10-16

我想知道以下代码中的ptr[i]指针可以指向整数数组,为什么或为什么不。问题是,如果存在另一个整数数组(即int brr[] = {4,5,6}(,ptr[i]是否可以指向整数数组(即brr(或它只能指向一个整数(即brr[i](,为什么或为什么不呢?

#include <stdio.h> 
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] = %dn", i, *ptr[i]); 
} 
}

当用作 r 值时,数组会衰减到指向其第一个元素的指针。所以

ptr[i] = arr;

相当于

ptr[i] = &arr[0];

既然您已经知道后者是有效的,那么前者也是如此。