B
初始化在定义时就已经完成了
(8) double a[10],*s=a; 声明了一维数组a,它有10个元素,s是指针,初始化指向a的始地址。
语句中 *(s+3) 的 s是指针,指向a的始地址,&a[0], s+3 是指向地址,等于 a的始地址 加 3 * sizeof(double) , 这样,指向了数组元素3的地址 &a[3] 。
*(s+3) = 求指向的值 = *(&a[3]) = a[3]; 即数组元素3的值。
(9)B 是错的,语句中不能这样写。 这样写法只能用于声明时的初始化。
例如:正确写法 struct complex data2={2,6};
(10)for (i=0,k=-1;k=1;i++,k++) ... 题目未写全,只能猜答
这里的循环允许条件 是 k=1; 这是赋值 表达式,其结果 永为真,那就无限循环。
如果条件 是 k<=1; 可以循环 3次,分别是 k=-1,0,1
这不都很简单吗!书本上有例题