有关c 语言的一些基础知识,谁能帮帮我?谢谢!!!

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:06:43
1. a=12,a+=a-=a*=a;之后输出a=0,请问a=12,a+=a-=a*=a;怎么理解?
2。(1)这些用户表示符合法? _123 P-0 la0 INT
(2)下列哪些是合法的转义字符?
'\" ’\‘ '018' '\\0' '\\' '\017' ’\f‘ '\101' '\n' ’\”‘
'xab' 'xlf'(它们都有哪些规则?可以具体说一下吗?xiexie!!)

1、式子中有逗号运算符,其顺序是从左至右,可以分写为
a = 12;
a += a -= a *= a;
后式又可以分解为
a = a + (a -= a *= a);
再分
a = a + ( a = a - ( a *= a) );
再分
a = a + ( a = a - ( a = a * a ) ) );
从右依次计算
a = a + ( a = a - ( a = 12 * 12 )));
a = a + ( a = a - ( a = 144 ) ) );
a = a + ( a = 144 - 144 );
a = a + ( a = 0 );
a = 0 + 0;
a = 0;
2、转义字符要看第是否是系统指定的。如果不是,则要看是以八进制还是十六进制表示的。
'\"' '\'' '\n' '\f'都是系统的,肯定没问题。
‘018’ 以0开头的表示八进制, 八进制里面最大数是7, 此不合法。
'\\0' 其中'\\'就是转义字符, 后面加个0其实是两个字符, 此不合法。
'\ ' 加空格则根本无此用法,不合法。