<pre id=\"best-answer-content\" class=\"reply-text mb10\">如果枚举没有初始化, 即省掉\"=整型常数\"时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。
例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
enum string{x1, x2, x3, x4}x;
当定义改变成:
enum string
{
x1,
x2=0,
x3=50,
x4,
}x;
则x1=0, x2=0, x3=50, x4=51
关于第二个问题:
关键在于int *pt[3],**ppt=pt;的理解
应该是,变量pt 是一个可以有三个成员的数组,每个成员均是一个整形指针变量,所以有
后面的pt[k] =
pt是数组,ppt则是指向数组的指针,也就是我们所说的二级指针,并且是针对整形数的。
ppt赋初值指向pt的第一个元素,**ppt=pt等价于 **ppt=
ppt,会令其指向其第二个数组元素 也就是pt[1];
*(*(ppt 1) 2)中 *(ppt 1)表示对pt数组的第三个元素取出其内容,里面是一个地址指针,指向
t[2][0],该地址向后移,做指针 2操作,指向t[2][2].最后取出该内容 |