1.C语言的初始化:int s[]=”abcd”或者int s[10]=”abcd”都是可以的,
但是char s[10];s=”abcd”就不可以了!原因如下:
因为,在char s[10];这个时候,计算机就给数组s内存地址,假设该地址叫做A;接着,s[10]=”abcd”;这个”abcd”计算机也会给它分配内存地址,假设地址叫做B;那么这就与前面的A地址冲突了。所以C语言中不可以这样子赋值!
2.在定义结构体变量时不允许对它赋初值。错误
(赋初值:初始化的同时给其赋值。)
如:以下,我们就定义了一个叫做book的结构体,顺带在定义结构体变量book1时,给它赋值。
3.
4.int a=1,b=2,c=3;if(a<c)b=a;a=c;c=b;则c的值为:
解析:代码可以看成:
这样子就醒目很多啦,当if条件成立时,c值为1;if 条件不成立时,c为2;(该题是a>c,假命题)
5.固化思维,让位一下子就以为输出是,空格空格1空格空格2
结果,又是想当然,结果是,空格空格1空格空格2空格空格3
代码解析:首先,我们在主函数定义了num并赋值为0;因为num=0小于等于2,满足while条件循环,进入循环体:
num自增,接着打印3个字符出来,不满三个用空格补上,所以这里就打印两个空格还有1;即打印出 空格空格1
接着判断,num=1小于等于2成立,进入循环体,同上操作,打印出空格空格2
再次判断,num=2小于等于2成立进入循环体,num自增1,然后再次打印空格空格3,
判断:num=3小于等于2显然不成立,所以不进入循环体,整个函数执行完毕。