1、

2、
ref 有 4 个元素。
3、
ref 的地址是: &ref[0]
ref + 1 表示:指针指向 &ref[1] ,也就是数组第二个元素的地址。
++ref 是一个错误的表达式,ref 作为数组名是常量。
( ref + 1 并不会改变 ref 的值,而 ++ref 会改变 ref 的值 )。
4、
a:
*ptr == torf[0][0] == 12;
*( ptr + 2 ) == torf[1][0] == 16;
( 因为ptr是int型指针,所以ptr+2表示向后移动2个int单元,即指向torf[0][0]后面第2个int元素。
数组在内存中是按行连续存放的,所以torf[0][0]后面是torf[0][1](偏移1个int),然后后面是torf[1][0](偏移2个int)。 )
b:
*ptr == fort[0][0] == 12;
*( ptr + 2 ) == fort[1][0] == 14;
5、
a:
**ptr == fort[0][0] == 12;
**( ptr + 1 ) == fort[1][0] == 16;
b:
**ptr == fort[0][0] == 12;
**( ptr + 1 ) == fort[1][0] == 14;
6、
a:
&grid[22][56];
b:
&grid[22][0]; 或 grid[22];
c:
*grid; 或 grid[0]; 或 &grid[0][0];
7、
a:
int digits[10];
b:
float rates[6];
c:
int mat[3][5];
d:
int *psa[20];
e:
char ( *pstr )[20];
8、
a:
int ar[6] = { 1, 2, 4, 8, 16, 32 };
b:
ar[2] == 4;
c:
int ar[100] = { [99] = -1 };
d:
int ar[100] = { [5] = 101, [10] = 101, [11] = 101, [12] = 101, [13] = 101 };
9、
内含 10 个元素的数组下标范围为:0 ~ 9
10、
a:有效
b:无效
c:无效(地址是常量)
d:无效
e:有效
f:无效
g:无效( pf 是指针,要用地址赋值 )
h:有效
11、
int ar[800][600];
12、
a:
传统方式函数原型以及函数调用:
void function( double trots[ ], int n );
function( trots, 20 );
变长数组函数原型以及函数调用:
void function( int n, double trots[n] );
function ( 20, trot );
b:
传统方式函数原型以及函数调用:
void function( short clops[ ][30], int n );
function( clops, 10 );
变长数组函数原型以及函数调用:
void function( int n, int m, short clops[n][m] );
function( 10, 30, clops );
c:
传统方式函数原型以及函数调用:
void function( long shots[ ][10][5], int n );
function( shots, 5 );
变长数组函数原型以及函数调用:
void function( int n, int m, int t, long shots[n][m][t] );
function( 5, 10, 15, shots );
13、
a:
show( ( double [ ] ){ 8, 3, 9, 2 }, 4 );
b:
show2( ( double [ ][3] ){ { 8, 3, 9 }, { 5, 4, 1 } }, 2 };

被折叠的 条评论
为什么被折叠?



