char
name[20]="123456789";
和溢出没有关系
i<8&&output[i]是表达式(逻辑运算),按运算符优先级,用括号括起来看就是:
(i<8)
&&
output[i]
它是循环语句循环条件。当它为假时,循环终止。
这里的意思是,如果i小于8并且output[i]不为null
("\0"
--
字符串结束符)时做循环。
一旦
碰到
字符串结束符,或
i>=8
,则
结束循环。
\\
--
打印一个字符“反斜杠”,第一个斜杠告诉编译器“下一字符不做语法翻译和解释,按原字符处理”,第二个斜杠是被打印字符。
0x
--
打印字符
0x,16进制数的前缀符
%x
--
以16进制整数形式输出
你这个程序的输出结果就是溢出的输出结果阿。。
数据类型规定相应的取值范围,例如int 用2个字节16位表示,一个位作符号位,剩下15位能表示2的15次方=32768位,于是无符号位的int最多能表示
-32768~32767,也说是说你定义的变量类型是int,但它的数不在这个表示范围就称为溢出。以此类推其他类型。
有个初学者的群,有兴趣可加入63223976
printf输出数据时是要跟着输出类型的,静态数据好像存放在栈里的是连续的存储空间,先转换成2进制数,在算
换成二进制代码,计算机操作的是补码,取反加一后换成原码