C/C++
文章平均质量分 92
90阿呆
这个作者很懒,什么都没留下…
展开
-
C语言宏与单井号(#)和双井号(##)
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) / do{ if转载 2014-05-28 09:13:51 · 414 阅读 · 0 评论 -
C标准和C++ 标准对左值/右值的区别
在C++ Primer的运算符重载一章,运算符函数的返回类型与内置运算符的返回类型是密切相关的,因此又回头看了一下运算符的特性,发现当时自己看这部分内容的时候没有重视起来,总觉得和C是一样,其实不然。 先看下边一段C++程序: 环境:VS2008 #include using namespace std; int main() { int a, b = 3, c = 2; (a原创 2014-08-15 18:08:53 · 543 阅读 · 0 评论 -
C语言中,常量=const?
首先这个问题的答案是错误的,不过从某种意义上来说是对的,为什么这么说? 1.常量 C语言中常量大致分为整型数常量、浮点数常量、字符常量、字符串常量、枚举常量、常量表达式。这些每个常量的概念就不细说了。显然这些常量是存储在Flash(ROM)中的,和代码放在一起。 2.const const类型限定符的确切的意义是“只读”,注意是只读而不是常量。 (1)const修饰全原创 2014-01-03 08:56:32 · 889 阅读 · 0 评论 -
fork() && fork() || fork()
[cpp] view plaincopy #include #include int main() { fork();/*****/ fork() && fork() || fork();/*****/ fork();/*****/转载 2014-09-07 10:55:18 · 544 阅读 · 0 评论 -
queue容器适配器
在C++Primer第五版P330页,关于queue的一些操作有些小错误。原创 2014-08-10 15:55:31 · 497 阅读 · 0 评论 -
小心C++流的标志位
C++ Primer 第五版 P289 练习8.10原创 2014-08-09 17:43:28 · 1022 阅读 · 0 评论 -
c++文件打开模式的有效组合
打开模式: in:打开文件时做读操作; out:打开文件时做写操作; app:在每次写之前找到文件尾; ate:打开文件后立即将文件定位在文件尾; trunc:打开文件时清空已存在的文件流; binary:以二进制模式进行IO操作; 有效组合: 并不是所有的打开模式都可以同时制定,有些模式组合是没有意义的,例如:in和trunc,准备读取文件流,但是转载 2014-08-09 10:19:43 · 568 阅读 · 0 评论 -
C语言中无符号数和有符号数相加问题 .
转自:http://blog.csdn.net/supreme42/article/details/6687781 看个题: #include int main() { unsigned int a=6; int b=-20; printf("%d\n",a+b); (a+b)>6? puts(">6"):puts(" return 0; } 结果是:-1转载 2014-07-29 09:12:22 · 574 阅读 · 0 评论 -
linux c ---关于EOF
EOF是 End Of File 的缩写。在C语言中,它是在标准库中定义的一个宏。 (1) 判断文件结束 多数人认为文件中有一个EOF,用于表示文件的结尾. 但这个观点实际上是错误的,在文 件所包含的数据中,并没有什么文件结束符. 对getc 而言, 如果不能从文件中读取, 则返回一个整数 -1,这就是所谓的EOF. 返回 EOF 无非是出现了两种情况,一是文件已 经读完; 二是文件读取转载 2014-07-28 18:00:14 · 697 阅读 · 0 评论 -
c++标准库 及 命名空间std
1、命名空间std C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围(函数)内,不会引起命名冲突。最典型的例子就是std命名空间,C++标准库中所有标识符都包含在该命名空间中。 如果确信在程序中引用某个或者某些程序库不会引起命名冲突(即库中的标识符不会在程序中代表其他函数名称),那么可以通过using操作转载 2014-08-03 23:30:17 · 495 阅读 · 0 评论 -
二重指针的一个问题
二重指针的一个问题分析(面试题)总结:函数地址传递调用函数时必须用 函数名(& a)的方式。不加&就是值传递。指针也是变量,虽说他存储的是别人的地址。如果想把指针作地址传递,就必须使用地址的地址,即二重指针。 #include #include #include void Getmemery(char *p){ p=(char *)malloc(100);}void main(){ char *s转载 2014-07-09 10:39:16 · 442 阅读 · 0 评论 -
i++ : 顺序点(sequence point) 与 副作用 (side effect)
转自:http://www.cnblogs.com/smwikipedia/articles/1229984.html 表达式的计算分为两种,一种是有副作用的计算,如: (++x)+y 一种是无副作用的计算,如: x*y 有副作用的计算中,子表达式的计算顺序是重要的。例如 (++x)*(x+1) 当x=0时,如果先算++x,上式计算结果为2,如果先算x+1,上式计算结转载 2014-08-15 18:45:20 · 414 阅读 · 0 评论