1、While,do-while,for循环里都可以用到break和continue,break means "quits the loop without executing the reset of the statements in the loop",continue means "stops the execution of the current iteration and goes back to the beginning of the loop to begin a new iteration"
2、switch-case:判断分支的selector必须是int类型(char也可以),其他类型比如string字符串等不可以使用
3、float和double区别:字节数不一样(4字节,8字节);有效位不同(7,15);一般默认为double,定义成float要加f,比如0.5f
4、void*表示任何类型的地址都可以赋值给他,那么在使用该指针时,也需要先将它转化为相应的类型。比如:
int i=99;
void* vp=&i;
*((int*)vp)=88;(i的值从99变成了88)
5、C++变量的作用域限于包含该变量的最近大括号内;while,do-while,for内部也可以定义仅可用于该循环的内部变量,通常用于计数
6、static的作用:数据共享。static和global的区别:global作用域在整个程序,只要extern声明就可以使用;函数中定义的static变量只在该函数作用域内有效,文件中所有函数之外定义的static变量/函数也仅在该文件内有效,其他文件即时extern声明也无法使用它。
7、C++中const定义的常量数字:0开头代表八进制,0x开头代表十六进制;volatile,编译器不得优化
8、使用位操作符打印字符二进制
9、四种类型转换:static_cast<T>(x)相当于C语言的(T)x,主要为了标识清晰减少警告信息,比如正常的int,float转换,注意不能用于转换const变量;const_cast<T>(x)是为了实现const T或volatile到T的转换,通常用于解除const属性;reinterpret_cast危险性最大,通常用于类型指针转换和整数、指针间的转换;dynamic_cast属于运行时类型检查,用于含有虚函数的基类、子类指针/引用间的转换,不成功会抛出异常
10、调试方法:预编译指令,使用ifdef,ifndef,endif来控制代码的编译与否。assert(X)用于判断X是否为true,若非true则会中断执行。字符化操作:在define中使用#符号用于打印任何变量或表达式,比如
11、函数指针:指向函数内存地址的指针。函数指针需要特别声明,注意和函数本身的声明或定义区分!C++中定义的某个函数,其函数名在使用时(只要不带参数调用)默认为该函数的首地址,所以可以直接把函数名当做函数地址赋值给事先定义好的函数指针。
12、makefile,参考http://www.chinaunix.net/jh/23/408225.html