C++拾遗
2014-05-02 16:41
295 查看
int a=3,b=4; bool ok=(a==2,b==4); printf("%d\n",ok);
//输出的结果是1,逗号既不是&& 也不是|| 应该是从前到后然后返回后面的值。
1.gets(char *str)
从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为NULL值,并由此来结束字符串。可以写作while( NULL != gets(str)但是是不安全的。
2.FILE *fp
用于读取文件,相应的函数有fopen("test", "r"), fread(buffer, 1024 , 1, fp),etc.3.NULL
在stdio.h中是这样定义的: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif
4.const
不管类型,只看*和const的位置:如果const在*的左边(即const char *或char const *)的话表示指针指向的值不能改变,但是指针可以改变,即指向常量的指针;如果const在*的右边(即* const)的话表示指针是不可改变的,其指向的值可以改变,即常量指针。5.尾递归
尾递归在python,C#,Java中都是没有优化的。使用的必须考虑堆栈的问题。C中可以使用,但是既然都已经写到尾递归了,为什么不直接使用循环实现呢?6.Bitset
#include <bitset>
按位存储信息,bitset<N>var<M>
N为二进制位数,M为二进制数值。如果大于最大的则没有符号位。