66问答网
所有问题
当前搜索:
数组元素地址表达式
已知:inta[]={1,2,3,4,5},*p=a;在下列
数组元素地址
的表示中,正确的是...
答:
C &p[2] 正确,就是a[2]的
地址
A *p++ 这个的值是 a[1],是
元素
的值 B &(a+1) 这个非法的,a+1是个纯右值,不可取地址 D 同上
(21) 若有以下的定义:int t[3][2];能正确表示t
数组元素地址
的
表达
答:
C,D都可以表示
元素
的
地址
.t[1]表示第1行的首地址,t[2]表示第2行的首地址.t[3]越界了,因为至多到t[2]
深入解析二维
数组
:定义、下标变量与存储方式
答:
其中,常量
表达式
1表示第一维下标的长度,常量表达式2表示第二维下标的长度。下标变量二维
数组
的下标变量为a[0][0], a[0][1], a[0][2], a[0][3] ... a[2][3]。通过下标变量,可以访问二维数组中的每一个
元素
。存储方式二维数组的存储方式有两种策略:行优先和列优先。在C语言中,二维数组的...
...x[5],则以下
表达式
中不能代表
数组元素
x[1]的
地址
的是() A)&x[0...
答:
A)&x[0]+1 -> 取x[0]的地址+1(
数组地址
+1,是把地址往后移一个数组的类型的长度,这里是int,也就是往后移4)所得到的地址就是x[1]的地址 B)&x[1]-> 取x[1]的地址,这没什么可说的了 C)&x[0]++ -> 可以看做&(x[0]++)是取x[0]的地址后,将x[0]的值递增 D)x+1 -> ...
& a的值是多少?
答:
答案是12,我亲自调试了一下,没问题的。解释:&a[0][0]表示数组a的第一个元素的地址,
数组元素
存储在内存中一片连续的区域里,所以数组元素的地址加1则指向下一
元素地址
,多维数组也是一样。因此括号里面的
表达式
就是a[5](实际上这里没有a[5],而是第5+1=6个元素,即a[2][3])的地址,...
对a
数组元素地址
的正确引用是
答:
p是一个行指针,指向了二维数组的第一行,p每加1就指向下一行,这里加了2,所以他指向了第三行,也就是说AB答案其实是指向了第三行第一个元素,而这里一共只有两行,所以已经不是a
数组元素
了。再来看C,p[1]=*(p+1),p+1就指向了第二行,再加个*号,指向了第二行第一个元素,再加1...
下列能够正确表示
数组元素
a[1][2]的
表达式
是
答:
D 两个知识点:1、二维
数组
的数组名,可以看作类型是指向第二维子数组的指针,比如int a[4][3];a的类型是int (*)[3],即指向int [3]数组的指针。2、p[i]等价于*(p+i)。由这两点可知,int (*prt)[3]=a的话,prt和a在使用上就是一样的了。a[1][2]就是ptr[1][2],利用知识点...
*(p+5)为什么
表达
的是a[1][2],a[0]和a有什么区别
答:
p = a[0]; 其中a[0]和&a[0][0]等效, 因为
数组
名表示数组第一个
元素
的
地址
也就是将a[0][0]的地址赋值给指针p, 那么*(p+5)表示的就是a[0][5]因为c的多维数组是按照一维数组来存的, 而起编译器不检查数组下标是否越界, a[0][5]和a[1][2]是同一个元素 a[0]和a的区别, ...
c语言问题
答:
分析一下类型。t的类型是 int** ,就是指针的指针,也即地址的地址。
数组元素
类型为int,
元素地址
类型就是int 所以要得到int*,就要把t进行一次提取(dereference),使int**变成int*。所以t[1]正确。
元素
类型为char的二维
数组
a[10][30]共占用__300__字节的存储空间,其 ...
答:
a[3][4]的
地址
为a的地址加上34(a+34)。a的地址是
数组
的首地址,数组分配的空间在逻辑上都是连续的。所以a[3][4]地址就是 a+sizeof(char)*( 10 * 3+4) = a+34。
<涓婁竴椤
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜