-
c语言中,变量最好进行初始化,特别是字符串最好注意,未初始化时,内存里为cc ,如果按fwrite()方式写进文件,会出现“烫烫“,造成乱码,初始为0就可以避免。
-
前置版本返回一个引用【classname & operator++()】,
后置版本返回一个const值【const classname operator ++(int)】。
后置版本是利用前置版本来实现的。节约代码,控制代码有余。
前置版本的效率高,因为后置版本需要调用前置版本,所有后置版本效率比前置要低。(++i比i++效率高。)
在后置版本里,人为添加一个参数(int),称为哑元,主要是为了区别前置版本,这个参数不会被使用。
记住,如果有哑元,则是postfix,否则,就是prefix
就像其他的一元算法和逻辑运算一样
而其实在C++中用到这种哑元的也只有在postfix ++ 和–了
【该点转自 Yerasel】 - linux下 不论是阻塞还是非阻塞方式的socket,read() = 0 时,都表示连接正常退出,返回值<0 表示出错,>0 表示正常读取到数据。
- 写文件最好用二进制的方式,fputs可能会添加回车换行符
写文件注意缓存清空
char STR[] = “this is a string”;
sizeof(STR) 比strlen(STR) 大一个字节; - java与C不一样,java中new对象数组时,只是分配了一个指针而已,并没有为每个对象分配内存;
- c++中,拷贝构造函数里,能够访问private变量,c++是可以这样访问的,可以理解为“在成员函数中,能够访问private变量”, 这两点都满足,例子:(m_error_code 为private变量)
CResponse::CResponse(const CResponse& response) {
m_error_code = response.m_error_code;
}