具有相同类型的指针变量p与数组a,不能进行的操作是(). A:p=a; B:*p=a[0]; C:p=&a[0]; D:p=&a;、
时间: 2024-04-28 20:19:50 浏览: 82
选项D: p=&a; 是不能进行的操作。因为&a是数组a的地址,它是一个指向数组的指针,类型为指向整个数组的指针,而p是一个指向数组元素的指针,类型为指向数组元素的指针,二者的类型不同,因此不能将&a赋值给p。正确的操作是选项A: p=a; 或选项C: p=&a[0]; 或选项B: *p=a[0];。
相关问题
若有以下说明,且0<=i<10,则对数组元素的错误引用是()。 int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a, i; A. *(a+i) B. a[p-a+i] C. p+i D. *(&a[i])
正确答案是A. *(a+i)。
在这个代码中,a是一个数组名,它指向数组的第一个元素。p是一个指向整型变量的指针,它指向数组的第一个元素。i是一个整型变量,它的值为未定义。
在C语言中,数组名可以被解释为指向数组第一个元素的指针。因此,a和p所指向的地址相同,即a和p都指向a[0]。
选项A中,*(a+i)表示a数组中第i个元素的值,因为a[i]等同于*(a+i)。
选项B中,p-a表示p指针所指向的地址减去数组a的地址,即0。因此,a[p-a+i]等价于a[i]。
选项C中,p+i表示p指针所指向的地址加上i个整型变量的大小,即p+i指向数组a中的第i+1个元素,而不是第i个元素。
选项D中,&a[i]表示a数组中的第i个元素的地址,*(&a[i])表示该地址中存储的值,等价于a[i]。
若有初始化语句char a[]="China",*p="China";则以下正确的说法是( )。 A 数组a的首地址和p中的值相同 B a占用的字节数为5 C p只能指向含有5个有效字符的字符串 D a[1]和p[1]的值相同
正确的说法是 A 数组a的首地址和p中的值相同。因为在初始化语句中,字符数组a的首地址被赋值给了指针变量p,所以它们的值是相同的。而数组a占用的字节数为6(包括字符串末尾的空字符'\0'),不是5;指针变量p并不限制指向字符串的长度,所以选项C也不正确;数组a[1]和指针变量p[1]的值都是字符'i',但是这并不是题目要求的。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)