c/c++注意事项
来源:互联网 发布:淘宝店铺提升信誉 编辑:程序博客网 时间:2024/05/17 02:01
1,在使用变量前初始化他们。包括指针可初始化为NULL。2,返回栈里的对象是危险的,尤其不能返回指针。 char *GetBuff(){char ascii[10];return ascii;}是错误的。3,char类型的符号问题。4,不要依赖表达式的运算次序,一般编译器都进行优化,先进行函数求值,再求复杂表达式,再处理简单数据。5,函数形参的求值是没有次序的。6,转义符号必须小写。7,三元转义, ??= #,??( [,??< {,??/ \,??) ],??> },??' ^,??! |,??- ~8,数组和数组的指针只有在形参使用中才是等价的,因为形参是不会把数组传入的。9,数组下标运算符可以交换位置。 char*p = &2["kdkkd"];10,如果不想修改数组参数,就把它声名为 const.11,常量指针 const int *p = & i; int const *p = &i;//不能通过指针修改整数 是等价的。 int *const p =&i 则不同。//不能使指针指向别的变量了。12,避免浮点数相等的比较。13,,运算符执行了其前后的表达式,仅返回右边的表达式的值。14 ,注意typedef的应用。 int (*myfun)();和typedef int (*myfun)() MYFUN; 15,使用位来存储标志位方法是使用结构。16,指针不可做+但可做-运算。并且弄清指针+1发生了什么。17,关于想要修改指针的值的问题。void NextSpace(char ** pStr);调用时使用 char *p;NextSpace(&p);这样将修改指针本身,而不是指针指向的值。如果你 想在函数NextSpace中为p申请一块内存,并在返回后能使用p,就可以这样做。 c++18 , for ,while中声名的变量在出了循环后仍有效。19,在条件语句中声名的变量仅在作用域内有效。20,c++是不允许跳跃一个初始化变量语句的。在case中的声名的局部变量必须使用 括号封闭它。21,要使用类库中的被保护的成员,可以从它继承一个类,声名一个返回该成员引用 型的共有函数。22,成员指针class A{ public :int a; } int A::*pint = &A::a; A a; int x = a.*pint; 事实上成员指针主要用途是指向成员函数的。 class A{public:void funcA(int);} void(A::*pFunc)(int) = &A::funcA; A a; A *pa = &a; (a.*pFunc)(8); (pa->*pFunc)(8);23,静态的成员函数仅能访问静态的数据成员。24,可以使用静态的指针指向活动的对象 class window{public; static window* GetActive(){reutrn pActive;}void OnAcive(){pActive = this;}private :static window* pActive;}25,建议使用const代替define 和enum.26,c++调用c函数可声名 extern "C"{c的函数声名。}27,为使头文件在c和c++中移植#ifdef _cplusplusextern "C"{#endif头文件 #ifdef _cplusplus} #endif28可能导致内存丢失的原因 1,忘记释放。 2 ,程序中有的分支不会释放已经分配的内存。(常见) 3,给已经指向了分配内存的指针分配内存。29,类中的指针成员一定要初始化,可以是NULL。30,当一个类中有指向其他资源的指针,并由类本身释放,那么要写拷贝构造函数。31,在重载=运算符时,应考虑x= x型问题,解决的办法是判断是否是它自己,如果是 直接返回。 if(this = &argValue) return *this;32,当类无须拷贝,则声名拷贝构造函数为私有并可不实现。33,赋值运算符不能继承。34,除构造函数,其他情况下给类的指针赋值必须删除原来的内容。35,如果析构函数外释放指针,应该紧随其后,把它赋值为NULL。36,可以使用一个初始化函数和关闭函数,而不写构造函数和析构函数。37,使用delete [] Array释放用new分配的数组。38,说明拷贝构造函数时必须说明为常量参数。39,析构函数为虚。40,如果对于类的对象之间的指针所指向的内容变化不大,可使用引用计数来确定拷贝 析构函数是否删除指针释放内存。
0 0
- C 注意事项
- c语言注意事项
- c语言注意事项
- C编程注意事项
- C语言指针注意事项
- C编程注意事项
- C/C++的注意事项
- C语言命名注意事项
- Lua C module 注意事项
- C语言注意事项
- c语言注意事项
- c语言注意事项
- c/c++注意事项
- C基础指针注意事项
- [C#]60个注意事项
- C++: 跨平台注意事项
- C指针使用注意事项
- C、C++的注意事项
- 苦恼的毕业设计
- Yale CAS + .net Client 实现 SSO(4)
- MySQL-Cluster7.2.5安装和配置
- B 树、B- 树、B+ 树、B* 树的含义和区别
- Yale CAS + .net Client 实现 SSO(5)
- c/c++注意事项
- C/C++程序员必须熟练应用的开源项目
- 光照归一化算法——DCT
- LaTeX: .cls vs .sty files (by Robertson)
- linux ------ USB设备驱动
- 照片丢失了怎么恢复呢
- Yale CAS + .net Client 实现 SSO(6)
- 可穿戴设备收集的数据,医生也能用得上
- 文件不小心删除了怎么恢复