今日学习札记——C++程序设计1(11-02)
来源:互联网 发布:linux清除tomcat缓存 编辑:程序博客网 时间:2024/05/23 15:47
今日学习札记--C++程序设计1
1. 图1
2. C和C++
- 超集
- C++支持C所支持的全部编程技巧
- 任何C程序都能被C++用基本相同的方法编写,并具有相同的开销(时间、空间)
3. 参考资料
《C++程序设计》 钱能 清华大学出版社 《C++ Primer》
《Effective C++》 《Programming -- Principles and Practice Using C++》
《More Effective C++》 《The C++ Program Language》
《Thinking in C++》
=======================结构化程序设计部分========================
4. 基本数据类型
- char、int、float、double
- Modifiers(修饰符):long、short、signed、unsigned
# char 只能用signed、unsigned修饰
# float 不能被修饰
# double 只能用long修饰
# int 可用4种组合修饰
- 操作符sizeof,简单来说就是返回一个对象或类型所占的内存字节数。<下钻1:sizeof>
- ANSI C++:wchar_t <下钻2:wchar_t>、 bool
- typedef 为已有的类型定义一个同义词
如:typedef double profit;
typedef int INT;
5. 表达式
- 种类:算术、关系和逻辑、赋值、逗号、字位运算符
- 操作符可重载
- 赋值表达式:左值 = 右值表达式。左值:可以出现在表达式左部的表达式,具有存放数据的空间。
- 增量和减量操作符
# 前增量(前减量) ++a(--a) 前增量的结果是左值
# 后增量(后减量) a++(a--)
- 三目运算符(可嵌套) <exp1>?<exp2>:<exp3>
- 逗号表达式
如:int a,b,c;
int d = (a=1, b=a+2, c=b+3);
- 字位运算符
# 按位取反~ 单目
# 按位与& 双目 复位(双1才1)
# 按位或| 双目 置位(有就是)
# 异或^ 双目
1) 与全0运算 不变
2) 与全1运算 取反
3) 与本身运算 清零
4) 与统一对象运算两次 还原
6. 语句
- 表达式语句
- IO语句
# cin、cout
# >>、<<
- 控制流语句
--------------<下钻1:sizeof>
操作符sizeof,简单来说就是返回一个对象或类型所占的内存字节数。
其返回值是size_t,一般定义为:typedef unsigned int size_t;(头文件stddef.h中)
sizeof有三种语法:
1)sizeof(object); //sizeof(对象)
2)sizeof(type_name); //sizeof(类型)
3)sizeof object; //sizeof 对象
例1: int i;
sizeof i;
sizeof(i);
sizeof(int);
sizeof(2); //2为int型,所以等价于sizeof(int)
sizeof(2+3.14); //3.14为duoble型,所以等价于sizeof(double)
例2:指针记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。
所以在32位计算机中,一个指针变量的返回值必然是4(注意结果以字节为单位)。可以预计,在64位
系统中控制变量的sizeof结果为8。
char *pc = "abc";
sizeof(pc);
例3:数组的sizeof等于数组所占用的字节数。
char a1[] = "abc";
int a2[3];
sizeof(a1); //结果为4,字符串类型还存在一个NULL终止符
sizeof(a2); //结果为3*4=12
例4:类的sizeof等于类中成员变量所占用的内存字节数。但是静态变量不算,因为在程序编译期间,就已经
为static变量在静态存储区域分配了内存空间。
A object;
sizeof(object);
--------------end<下钻1:sizeof>
--------------<下钻2:wchar_t>
wchar_t被定义为:typedef unsigned short wchar_t;(头文件tchar.h中),显然它是16位(2字节)的。
(测试环境:VC++6.0)char类型wchar_t类型类型大小(32位系统)8位16位常量字符表示法'A'L'A' 或 'A'常量字符串表示法“hello”L“hello”一些使用方法char c='A'; (c的值:0x41)wchar_t wc='A'; (wc的值:0x0041)char* p=“hello”;wchar_t* pw=L"hello";sizeofsizeof("hello")=6sizeof(L"hello")=12计算长度strlen("hello")=5wcslen(L"hello“)=5
--------------end<下钻2:wchar_t>
1. 图1
2. C和C++
- 超集
- C++支持C所支持的全部编程技巧
- 任何C程序都能被C++用基本相同的方法编写,并具有相同的开销(时间、空间)
3. 参考资料
《C++程序设计》 钱能 清华大学出版社 《C++ Primer》
《Effective C++》 《Programming -- Principles and Practice Using C++》
《More Effective C++》 《The C++ Program Language》
《Thinking in C++》
=======================结构化程序设计部分========================
4. 基本数据类型
- char、int、float、double
- Modifiers(修饰符):long、short、signed、unsigned
# char 只能用signed、unsigned修饰
# float 不能被修饰
# double 只能用long修饰
# int 可用4种组合修饰
- 操作符sizeof,简单来说就是返回一个对象或类型所占的内存字节数。<下钻1:sizeof>
- ANSI C++:wchar_t <下钻2:wchar_t>、 bool
- typedef 为已有的类型定义一个同义词
如:typedef double profit;
typedef int INT;
5. 表达式
- 种类:算术、关系和逻辑、赋值、逗号、字位运算符
- 操作符可重载
- 赋值表达式:左值 = 右值表达式。左值:可以出现在表达式左部的表达式,具有存放数据的空间。
- 增量和减量操作符
# 前增量(前减量) ++a(--a) 前增量的结果是左值
# 后增量(后减量) a++(a--)
- 三目运算符(可嵌套) <exp1>?<exp2>:<exp3>
- 逗号表达式
如:int a,b,c;
int d = (a=1, b=a+2, c=b+3);
- 字位运算符
# 按位取反~ 单目
# 按位与& 双目 复位(双1才1)
# 按位或| 双目 置位(有就是)
# 异或^ 双目
1) 与全0运算 不变
2) 与全1运算 取反
3) 与本身运算 清零
4) 与统一对象运算两次 还原
6. 语句
- 表达式语句
- IO语句
# cin、cout
# >>、<<
- 控制流语句
--------------<下钻1:sizeof>
操作符sizeof,简单来说就是返回一个对象或类型所占的内存字节数。
其返回值是size_t,一般定义为:typedef unsigned int size_t;(头文件stddef.h中)
sizeof有三种语法:
1)sizeof(object); //sizeof(对象)
2)sizeof(type_name); //sizeof(类型)
3)sizeof object; //sizeof 对象
例1: int i;
sizeof i;
sizeof(i);
sizeof(int);
sizeof(2); //2为int型,所以等价于sizeof(int)
sizeof(2+3.14); //3.14为duoble型,所以等价于sizeof(double)
例2:指针记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。
所以在32位计算机中,一个指针变量的返回值必然是4(注意结果以字节为单位)。可以预计,在64位
系统中控制变量的sizeof结果为8。
char *pc = "abc";
sizeof(pc);
例3:数组的sizeof等于数组所占用的字节数。
char a1[] = "abc";
int a2[3];
sizeof(a1); //结果为4,字符串类型还存在一个NULL终止符
sizeof(a2); //结果为3*4=12
例4:类的sizeof等于类中成员变量所占用的内存字节数。但是静态变量不算,因为在程序编译期间,就已经
为static变量在静态存储区域分配了内存空间。
A object;
sizeof(object);
--------------end<下钻1:sizeof>
--------------<下钻2:wchar_t>
wchar_t被定义为:typedef unsigned short wchar_t;(头文件tchar.h中),显然它是16位(2字节)的。
(测试环境:VC++6.0)char类型wchar_t类型类型大小(32位系统)8位16位常量字符表示法'A'L'A' 或 'A'常量字符串表示法“hello”L“hello”一些使用方法char c='A'; (c的值:0x41)wchar_t wc='A'; (wc的值:0x0041)char* p=“hello”;wchar_t* pw=L"hello";sizeofsizeof("hello")=6sizeof(L"hello")=12计算长度strlen("hello")=5wcslen(L"hello“)=5
--------------end<下钻2:wchar_t>
1 0
- 今日学习札记——C++程序设计1(11-02)
- 今日学习札记——C库函数(11.13)
- 今日学习札记——C++Primer补充1(11.7)
- 今日学习札记--C++程序设计2(11.3)
- 今日学习札记——C++Primer补充2(11.8)
- 今日学习札记——C++指针3(11.4)
- 今日学习札记——需求工程基础(11.4)
- 今日学习札记——数据结构基础(11.7)
- 今日学习札记——<string>模板类(11.17)
- 今日学习札记——<string>初步(11.17)
- 今日学习札记——STL通用算法(11.20)
- 今日学习札记——C语言一些基本语法(11.6)
- 今日学习札记——C语言指针与程序风格(11.6)
- 今日学习札记——STL常用容器:vector、list、set和multiset、map和multimap(11.17)
- Go语言学习札记——第三章 Go基本的程序设计结构(1)
- XML Schema学习札记(1)——基础总览
- python学习札记(1)
- python 学习札记(1)
- 安装cocoapods遇到的问题
- Netscape HTTP Cookie File php程序中用curl保存的cookie文件格式
- opacity、rgb、rgba透明背景
- 恢复RMAN备份时遇到ORA-01180错误
- 关于苹果的一些东西
- 今日学习札记——C++程序设计1(11-02)
- Python-opencv滤波
- 电路板的爬电距离和电气间隙是怎么规定的?
- hql日期类型
- ccpc Secrete Master Plan(水模拟)
- Quartz2D——屏幕截图,背景平铺
- jquery或者普通url清除浏览器缓存的方法
- device token详解 (苹果APNs’ device token特性和过期更新)
- 程序猿万圣节看片挑刺拿礼品