|
![]() | 作者: upxshell [kuangren]
![]() |
登录 |
#include <iostream> int main() { char myChar; short int myInt; long myLong; float myFloat = 7e4; std::cout << myChar; std::cout << ' '; std::cout << myInt; std::cout << ' '; std::cout << myLong; std::cout << ' '; std::cout << myFloat; return 0; } 他们输出的结果为什么是p 4464 70000 70000 是怎么换算的。谢谢! 还有一个 #include <iostream> int main() { char name[3]; std::cout << "Enter a name..."; std::cin >> name; std::cout << "The name you entered was " << name << std::endl; return 0; 为什么上边的[3]没起作用了,还是最多可以输入20个字符,如果没有[3],输入的数字只显示一个。 谁能帮忙给我解释一下,谢谢! |
地主 发表时间: 06/24 09:13 |
![]() | 回复: 286 [unique] ![]() |
登录 |
char myChar; short int myInt; long myLong; float myFloat = 7e4; 除了myFloat赋值了,其它都没赋值。但都分配了空间。空间里的数原来是什么现在就是什么。所以显示结果p 4464 70000都是随机数。再运行一次就不是这个结果了。最后一个70000=7e4=7*10^4。 第二个程序,C语言没有数组的边界检查,所以才会有缓冲区溢出漏洞。 这需要程序员自己注意缓冲区的大小,在VC上系统报错,显示某某内存为只读。。。。 |
B1层 发表时间: 06/24 12:12 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号