c/c++
MichealTX
算法/C/C++/JAVA/网络/python
展开
-
scanf的返回值探究
在oj做题时while循环中使用scanf时,有时会出现Output Limit Exceed错误,弄得我很纠结,最后只能通过去掉while循环来避免。今天决定把根找出来,功夫不负有心人,原来有人也碰到过类似的纠结,先转贴如下,与各位共享。scanf("%d%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返原创 2010-03-31 11:20:00 · 1083 阅读 · 0 评论 -
关于strchr()
最近写根据前序和中序构造二叉树用到了这个函数,但是用这个函数不好,因为strchr返回的是某字符在字符串中首次出现的位置,若有重复字符就白瞎了。所以前提是二叉树中没有重复出现的元素。头文件:#include (c++)或#include (c)功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。c++程序:#include#includeusing namespace std;int main(){ c原创 2010-06-26 09:12:00 · 2930 阅读 · 0 评论 -
srand()和rand()详解
标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned原创 2011-10-08 20:14:08 · 830 阅读 · 0 评论 -
C++中的指向const对象的指针、const指针、指向const对象的const指针
这个挺让人蛋疼的,看了爱忘,因为一直没怎么用。总结一下,以后不去c++ primer上查了。const指针分为三类:1、指向const对象的指针(1)定义形式:const double* pt;//const 在定义的最前面。(2)关键:pt可以改原创 2011-10-08 20:15:55 · 598 阅读 · 0 评论 -
如何区分C++中函数的重载、覆盖和隐藏
区别关键在于:发生范围和virtual关键字。一、重载发生的条件:(1) 相同的范围(在同一个类中);(2) 函数名字相同;(3) 参数不同(个数或类型不同);(4)与 virtual关键字无关。二、覆盖发生的条件有:(1) 不同的范围原创 2011-10-08 20:17:01 · 854 阅读 · 0 评论 -
坏蛋unsigned int型造成的循环陷阱
下面的循环执行几次呢?unsigned int i=10;for(i=10;i>=0;i--){ printf("HELLO GIRL!\n");}11次?O(∩_∩)O~,其实它是个死循环!为虾米?因为i是个unsigned int型,当减小到0时,再减1变成2^32-1,判断条件仍然成立!把判断条件写成i!=0就好了。我好像在C++ Primer上原创 2012-01-10 11:18:52 · 1027 阅读 · 0 评论 -
“作为函数参数的二维数组”即“怎么给函数传二维数组的指针”
刚才在百度知道看到了这个问题,回答了下,这个问题很好,总结一下。声明一个二维数组int matrix[100][100];当把二维数组作为参数传递的时候很多人可能一上来就这样写intfun(int **matrix),这样写是没有区分“指向整型指针的指针”与“指向整型数组的指针”的区别。这样传参是错的,因为matrix是个二维数组,matrix[100][100]是个二维原创 2012-01-03 18:54:13 · 10780 阅读 · 0 评论