若有声明 int *p[5], a[5];以下哪项是正确的赋值? A、p = a B、*p = a[0] C、 p[0] = a
时间: 2024-06-04 09:10:45 浏览: 7
[0] D、*p[0] = a[0]
正确答案是 C、p[0] = a[0]。
解析:
int *p[5] 定义了一个指针数组,数组中每个元素都是一个指向 int 类型数据的指针。
a[5] 定义了一个 int 类型的数组。
A 选项中,p 是一个数组名,不能直接赋值给一个数组变量。
B 选项中,*p 是一个指向 int 类型数据的指针,不能直接赋值给一个 int 类型的变量。
C 选项中,p[0] 是指针数组中第一个元素,可以直接赋值为 a[0],表示将 p[0] 指向 a[0]。
D 选项中,*p[0] 是指针数组中第一个元素所指向的 int 类型变量,可以直接赋值为 a[0]。但是需要注意的是,此时 p[0] 指向的地址并没有改变,仍然是指针数组中第一个元素的地址。
相关问题
int *p=a;与int *p=&a;有什么区别?
在C++中,int *p = a; 和 int *p = &a; 这两个语句有显著的区别。
int *p = a; 表示将一个整型数组a的首地址赋值给一个指向整型数据的指针p。此时,p指向的是数组a的第一个元素的地址。
而 int *p = &a; 表示将一个指向整型数组a的指针赋值给一个指向整型数据的指针p。此时,p指向的是整个数组a的地址。
换句话说,int *p = a; 可以用来遍历整个数组a,而 int *p = &a; 通常用于传递整个数组a的地址给函数,或者用于在函数中操作整个数组a。
解释一下若有声明 int *p[5], a[5];以下哪项是正确的 A、p = a B、*p = a[0] C、p = &a[0] D、p[0] = a
A、p = a 是不正确的。p是一个指向int类型指针的数组,而a是一个int类型的数组,它们的类型不匹配,不能直接赋值。
B、*p = a[0] 是正确的。p[0]是一个指向int类型的指针,可以通过*p[0]赋值为a[0]。
C、p = 是不正确的。p是一个指向int类型指针的数组,不能直接赋值为一个空指针。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)