您的位置:首页 > 编程语言 > C语言/C++

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为二进制数值。如果大于最大的则没有符号位。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: