个人理解还一部分来自百度,如果有错误请指正
1.若有定义
int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;
则下面的程序输出是 _____。
for(k=0; k<4;k++)
q[k]=&a[k*3];
printf("%d",q[3][0]);
解析:答案为 20,q[k] = &a[k * 3]的作用是每隔三个数取地址存到q[k]中,将a[ ]中的数分成4组每组3个数,q[3][0]读取的时候读取得是最后一组的第一个值
2.设有说明:char w ;int x ;float y ;double z;则表达式w*x+z-y 值的数据类型为()
答案为 double ,在C语言中,两个不同类型的运算,要转化为同类型的,转换从低到高 char -> float -> short -> int -> double