A.10 第10章

1.打印输出如下:

阅读 ‧ 电子书库

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

2.数组ref有4个元素,因为在初始化列表中值的个数为4。

3.数组名ref指向数组的第一个元素(整数8),表达式ref+1指向第二个元素(整数4)。++ref不是合法的C表达式,因为ref是常量而不是变量。

4.ptr指向第一个元素,ptr+2指向第三个元素,它是第二行的第一个元素。

a.12和 16。
b.12和14(因为有花括号,所以只有12在第一行中)。

5.ptr指向第一行,ptr+1指向第二行,*ptr指向第一行中的第一个元素,而*(ptr+1)指向第二行中的第一个元素。

a.12和 16。
b.12和14(因为有花括号,所以只有12在第一行中)。

6.a.&grid[22][56]

b.&grid[22][0]或grid[22]

(后者是含有100个元素的一维数组名,所以它就是第一个元素,即元素grid[22][0]的地址。)

c.&grid[0] [0]或grid[0]或(irit *)grid

(这里grid[0]是整数元素grid[0][0]的地址,grid是具有100个元素的数组grid[0]的地址。这两个地址具有相同的数值但是类型不同,类型指派可以使它们的类型相同。)

7.a.int digits[10];

b.float rates[6];
c.int mat[3][5]
d. char *psa[ 20]

注意[]的优先级比*高,所以没有圆括号时首先应用数组描述符,然后才是指针描述符。因此这个声明与char*(psa[ 20]);相同。

e.char(*pstr) [20]