C语言问题

2024-11-30 23:09:03
推荐回答(6个)
回答1:

1.当然是9了。因为a[0]~a[9],最大也就到9了
2.数组名字。int a[10].那么a就是首地址了
3.因为*p,所以p是指针,p=a,意思是p的地址等于a的地址,也就是二维数组的首地址,又因为(*p)[2]; 所以其实p是数组指针,(*p)[0]指向第一行,
(*p)[1]指向第二行。
这里*(p+2)之后,指向了第一行的第三个数,就是30,又因为后面还有一个+1,就是指向第二行了,很明显30对应的第二行就是60.
10 20 30
40 50 60

回答2:

1、9
2、数组名
3、60

回答3:

1、最大的下标为9。
2、a代表它的首地址。
3、值为60。

回答4:

第1题:9
第2题:数组名
第3题:60
*(*(p+2)+1)
=*(*(&p[0]+2)+1)
=*(*(&p[2])+1)
=*(p[2]+1)
=*(&p[2][0]+1)
=*(&p[2][1])
=p[2][1]

所以输出60。指针与[]的计算方法要注意把p[]转换为&p[]才能直接和后面的整数相加,其他具体内容,请去本人文库下载相应文章,有专门讲解,怎样使用指和和[]的混合运算。

回答5:

1. 9
2. 数组名 a
3. 60

回答6:

1。 若有以下数组a,元素a[0]~a[9]其值分别为9 4 12 8 2 10 7 5 1 3,该数组可用最大下标值为(9)
2. 数组在内存中占一段存储区,由(a)代表他的首地址
3. 设有以下定义语句:
int a[3][2]={10,20,30,40,50,60},(*p)[2]; p=a;则*(*(p+2)+1)值为(60)