a=6
b=a+m;
如果左边不是变量名,则会出现:3=4,53=a这样滑稽的语句。
本例中赋值号左边是一个数字,所以,语法错误的表达式不会有值。
二、如果表达式中间的等于号(=)有两个,则这个表达式是9/2*2 ==9*2/2,这个表达式是有意义的。这是因为,C语言中,“==”(双等于号)是一个判断相等的“逻辑运算符”,它的作用是比较前后表达式的值是否相等。如:
5==6前后不等,表达式的值是“逻辑假”,用0表示;
5==5,前后相等,表达式的值是“逻辑真”,用1表示。
三、(修改过的本例中)
9/2*2 ==9*2/2
4*2==18/2
8==9不成立,逻辑假,值为0。
若有不明白之处请留言。
数组索引都是从0开始,所以a[3][4]的范围是a[0][0]到a[2][3],D项a[0][4]明显不对。A是a[1][2],B是a[1][3],C是a[2][0],这三个都在a[0][0]到a[2][3]之间,所以合法。
你后面有一个除号(/t*t),如果前面是2*t,整个表达式不是做除法,而是取结果的商,而结果的商就是一个整数,虽然你定义成double型,但是输出会是一个整型的数,所以必须是2.0*t,这样就变成小数除以整数的形式,得到的就是一个小数,也就是一个确切的值