C++ 语言特性
yell_subma
这个作者很懒,什么都没留下…
展开
-
C++ 中 , char * 与 char [] 的区别
区别:(1). char * p = "abc"; 编译时确定 , 且"abc"分配在文字常量区里面,不能试图改变: 例如, p[0] = g 会报错!!! 不能更改常量!(2) char p[ ] = "abc" ; 运行时确定, 且"abc"分配在栈上, 所以比前一种快! 可以改变: 例如, p[0] = g !(3) ch原创 2007-11-10 21:46:00 · 406 阅读 · 0 评论 -
C++ 中 va_list va_start va_arg va_end 的用法!
#include#include #include #includeusing namespace std; int nSum(int n , ... ){ int sum = 0; va_list list; //定义 va_start(list , n ); // 开始解析 n 后面的参数 for(int i = 0; i { sum += va_arg(list ,原创 2007-11-12 14:15:00 · 604 阅读 · 0 评论 -
Mutex 和 CriticalSection 的 区别
他们的作用相同: 同一时刻,只有一个线程访问该资源不同之处: Mutex : 内核对象 , 可以设置等待超时时间 , 可以在不同的进程的线程中使用 , 消耗的时间较多 CirticalSection 刚好相反原创 2007-11-12 14:29:00 · 492 阅读 · 0 评论 -
C++ 编译器帮你生成的函数
条款45: 弄清C++在幕后为你所写、所调用的函数一个空类什么时候不是空类? ---- 当C++编译器通过它的时候。如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:class Empty{};原创 2007-11-13 20:15:00 · 567 阅读 · 0 评论 -
C++ char * p char p[] sizeof(p)
char * p = "12345";char p[] = "12345";sizeof(p) = 4 ; //指针长度为4 sizeof(p) = 6; //还加上了最后一个结束符/0 , 可见sizeof 是用来求所占内存的字节数的!sizeof在编译期间就确定了,所以求得是所占内存的字节数!而strlen(p)都是5 , 不包含最后一个/0 strlen是运原创 2007-11-13 19:05:00 · 1887 阅读 · 0 评论 -
堆 栈 区别
内存的5个部分:(1) 栈 : 编译器自动分配和释放. 存放 函数参数 和 局部变量 . 操作方式类似于数据结构中的栈(2)堆 : 程序员自己分配和释放. 如果程序员没有释放,可能有OS回收. 与数据结构中的堆不同 , 分配方式类似于链表(3)全局区(静态区) static : 全局变量 和 静态变量 是放在一起的. 初始化的全局变量和静态变量在一块区域, 没有初始化的全局变量和原创 2007-11-26 21:53:00 · 548 阅读 · 0 评论