C++学习小记(位运算,函数指针, 联合体,枚举, 逗号运算符)
2013-05-09 10:44
218 查看
一、位运算
举例说明:
a &= ff00;//&(与运算) 将变量a的低16位置0
a |= ff00;// |(或运算)将变量a的高16位置1
^(异或运算):可用于交换两变量的值
a ^= b; b ^= a; a ^= b; //交换a和b两变量的值
移位运算:
a << n; //左移n位 相当于 a * (2的n次幂)
a >> n; //右移n位 相当于 a / (2的n次幂)
二、联合体(union) 和 枚举(enum)
联合体:共享同一组内存单元
注意在联合体中,任何两个数据不会同时有效。由于是共享内存空间,会产生覆盖。例如下代码:
枚举:对于其中的值是默认递增的(从0开始)
例:enum Weekday {SUN = 7, MON = 1, TUE}; // SUN为7 ,MON为1,TUE为2
enum Weekday {MON, TUE}; //
MON为0,TUE为1
三、逗号运算符(,)
执行顺序从左到右,整个逗号表达式的返回值为最右方的表达式的值
例如:a = 3 * 5, a * 4; // 先执行语句a = 3 * 5,再执行 a * 4。整行语句的返回值为a * 4的值 为60
四、函数指针
举例说明:
举例说明:
a &= ff00;//&(与运算) 将变量a的低16位置0
a |= ff00;// |(或运算)将变量a的高16位置1
^(异或运算):可用于交换两变量的值
a ^= b; b ^= a; a ^= b; //交换a和b两变量的值
移位运算:
a << n; //左移n位 相当于 a * (2的n次幂)
a >> n; //右移n位 相当于 a / (2的n次幂)
二、联合体(union) 和 枚举(enum)
联合体:共享同一组内存单元
注意在联合体中,任何两个数据不会同时有效。由于是共享内存空间,会产生覆盖。例如下代码:
#include <iostream> using namespace std; int main() { union { char c; int i; double d; } mark; mark.i = 4; mark.c = 'a'; cout << sizeof(mark) << endl; //输出 8 cout << mark.c << " " << mark.i << endl; //输出 "a 97" return 0; }
枚举:对于其中的值是默认递增的(从0开始)
例:enum Weekday {SUN = 7, MON = 1, TUE}; // SUN为7 ,MON为1,TUE为2
enum Weekday {MON, TUE}; //
MON为0,TUE为1
三、逗号运算符(,)
执行顺序从左到右,整个逗号表达式的返回值为最右方的表达式的值
例如:a = 3 * 5, a * 4; // 先执行语句a = 3 * 5,再执行 a * 4。整行语句的返回值为a * 4的值 为60
四、函数指针
举例说明:
#include <iostream> using namespace std; void A(int a) { cout << "A(): " << a << endl; } void B(int b) { cout << "B(): " << b << endl; } void C(int c) { cout << "C(): " << c << endl; } int main() { typedef void (*functionPtr)(int ); functionPtr fp; fp = A; fp(1); //输出 "A(): 1" fp = B; fp(2); //输出 "B(): 2" fp = C; fp(3); //输出 "C(): 3" return 0; }
相关文章推荐
- 纯c与c++:函数传递-指针/引用,typdef struct + 结构体/枚举
- Android JNI编程(六)——C语言函数指针、Unition联合体、枚举、Typedef别名、结构体、结构体指针
- C++ 学习笔记(19)new/delete表达式、定位new、typeid、dynamic_cast、type_info、枚举类型、成员函数指针、union、位域、volatile限定符、链接指示
- 指针运算、指针函数、函数指针、结构体指针以及枚举的介绍
- 联合、枚举、双指针、void*、函数指针
- c笔记11---联合,枚举,堆 malloc,大/小端存储,二级指针,函数指针,qsort 排序,指针数组
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- 大话 函数指针 和 枚举这对鸳鸯
- 第六篇:函数的指针、结构体、枚举、宏定义
- Android JNI编程(六)——C语言函数指针、Unition联合体、枚举、Typedef别名、结构体、结构体指针
- 函数指针以及位运算
- 结构体,联合体,枚举.sprintf ,结构体变量和指针成员,->含义
- 二级指针、函数指针、枚举、static、const
- C语言基础及指针⑨联合体与枚举
- 二级指针、函数指针、枚举、static、const
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- NDK探究之旅《六》—函数的指针、结构体、枚举、宏定义
- 4.3.函数指针
- 指针【3-1-25】函数指针