int a[5] int (*p)[5]; 下面语法正确的选项是() A p=a B p=&a C p=&a[5] D 都错误

如题所述

B
p定义为一个指针,这个指针指向一个数组,这个数组有5个int类型的元素
a定义为一个有5个int类型元素的数组,取a的地址赋值给P是合理的
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-15
D

...下面语法正确的选项是() A p=a B p=&a C p=&a[5] D 都错误
p定义为一个指针,这个指针指向一个数组,这个数组有5个int类型的元素 a定义为一个有5个int类型元素的数组,取a的地址赋值给P是合理的

...int a[5],*p=a; A. *&a[5] B. a+2 C. *(p+5) D. *(a+2)
D正确,选D。因为:A:语法合法,但[5]越界了。B:a+2是地址,不是元素。C:与A一样,只是指针写法,p+5越界了。

计算机二级试题及答案
(3) 在一棵二叉树上第5层的结点数最多是(B) 注:由公式2k-1得A. 8 B. 16 C. 32 D. 15(4) 下面描述中,符合结构化程序设计风格的是(A)A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句(5) ...

C语言选择题,求详解
选项A是正确的。解释如下:p是字符串指针,它是一个变量,可以被赋值,指向新的地址。a[5]是一个字符串,a指向这个字符串的首地址,而且它是一个常量,除了初始化的时候能赋值之外,不能再被赋值了。p是取到指针p的地址的值,*a是取得字符数组a[5]的首地址的值,这两个都是int型,后面的字符...

数组问题 int a[5],*p;p=a;p=&a[0];p=&a;都是什么含义
int a[5];\/\/a是指针常量,表示的是数组首元素的地址,即a=&a[0]。int *p=a;p=&a[0];\/\/因为a=a[0],所以p=a 和p=&a[0]是等价的。p=&a\/\/int *p,p是一个指向int类型的指针,而&a表示的是指向整个数组的指针(取一个数组名得地址所产生的是一个指向数组的指针)。p是int类型的...

设有变量说明:char a[6],*p=a;下面表达中,正确的赋值语句是
C是正确的 首先明确几个问题:1、*p相当于a[0];2、a是数组名,同时是数组的首地址,不能被修改;3、a[i]是第i+1个元素,只能赋予单个字符。A:根据1,相当于a[0]=“Hello",再根据3可排除 B:由2得知是错的 C:p是个指针,可以改变指向,是对的 D:由3得知是错的 ...

C语言的精髓
学语言,网页设计方面的知识,重在动手操作,只要试着多做就会慢慢地好起来。C语言的精髓在于以后章节中将会学到的指针,可以用一句话这样来说:如果没有懂得指针就没有学会C语言。把前面的函数传值、调用等方面的知识学扎实了,后面应该就会觉得很简单。我个人是这样认为的,也是这样学习的。

C语言作业
void fun(int x, int y, int * z){ * z = x – y;} void main(){ int a, b, c;fun(11, 5, &a);fun(8, a, &b);fun(a, b, &c);printf(“%d, %d, %d\\n”, a, b, c);} A. 6,4,2 B. 6, 2, 4 C. 2, 6, 4 D. 2,4,6 C 语句int *func(); 中...

...int (*p)[1];int (*p)[5];int temp[5][5]; 麻烦大虾一定进来看看...
问题1:temp可以理解为指向数组的指针,这个数组中存放的是int型的指针,其实所谓的指针都可以理解为地址,例如int a = 0 ;int *p=&a;那么p就是一个整形指针,p的实际值就是a在内存中的位置。假如 int temp[3][3]={{0,1,2}{3,4,5}{6,7,8}},那么整个数组在内存中的大概样子如下图...

关于数组首地址赋值给指针和数组指针的问题
int *p定义了一个指向int型的指针p。而a本身已经是指向int型的指针了,对a做取值操作,返回的结果是int **类型的,造成类型不匹配,所以不能这样写:int *p = &a;而int (*pa)[5]定义了一个指向5个元素的int数组的指针,而a只是数组的首地址,&a才是数组的指针,同样也是因为类型不匹配。

相似回答
大家正在搜