摘要: 在使用scanf时很需要注意一点就是取地址运算符&,这个运算符不留神就很容易忘记,将会产生是一个针对内存的冲突,错误不易查找并且严重,见下面的代码: int i = 2; scanf_s("%d", i); 上面的代码不小心失掉了&运算符[s1],会发生下面的冲突(之前已为i赋值2,所以是在位置0x00000002处访问冲突。而如果没有赋值,则是在0xcccccccc发生访问冲突) C中,因变量类型不同而导致编译器为变量分配内存空间的时机不同。在使用scanf时,要求提供变量的内存地址,且必须保证被赋值的空间是正确的空间,所以我们就可以利用这一点来讨论变量类 阅读全文
posted @ 2013-04-07 21:26 czl-sy 阅读(980) 评论(0) 推荐(0) 编辑
摘要: scanf和回车的关系: 先看一个我们经常使用的代码: char c; scanf("%c", &c); scanf 的各种格式中,%d、%c、%s三种最常用,通常都是以回车作为一次输入的结束。由于对字符解析方式及字符特点不同(如数字中一般不会出现空格回车等特殊字符)不同,%d格式一般不会在连续输入时,遇到问题。而%s和%c却会出现各种各样的问题,比如回车问题,空格问题等。我们已经习惯了上面的代码,再看下面存在连续输入时的情况: int i; char c; scanf("%d", &i); scanf("%c", & 阅读全文
posted @ 2013-04-07 20:49 czl-sy 阅读(15074) 评论(0) 推荐(4) 编辑