### VC++2005入门经典,学习笔记 #### 第1章 使用Visual C++ 2005编程 - **1.1 术语** - **CLR (公共语言运行库, Common Language Runtime)**: CLR 是 Microsoft .NET Framework 的一部分,它提供了一个执行环境,能够管理代码的执行并提供内存管理、垃圾回收等服务。 - **CLI (通用语言基础结构, Common Language Infrastructure)**: CLI 定义了一组标准,包括 CLR 和 CTS,是所有 .NET 语言的基础。 - **MSIL (微软中间语言, Microsoft Intermediate Language)**: MSIL 是一种与平台无关的中间语言,编译器将源代码编译成 MSIL,然后再由 CLR 在运行时将其编译成本地机器码。 - **CTS (通用类型系统, Common Type System)**: CTS 定义了所有 .NET 语言中可用的数据类型的标准集合,并确保这些类型的一致性和兼容性。 - **1.2 main() 函数** - 所有 ISO/ANSI C++ 程序的执行都始于 `main()` 函数。如果程序使用 Unicode 字符,则可以使用 `wmain()` 函数。`_tmain` 是 `main` 或 `wmain` 的别名,具体取决于程序是否使用 Unicode 字符。 #### 第2章 数据、变量和计算 - **2.1 ISO/ANSI C++ 中的基本类型** - **bool**: 占用 1 字节,表示布尔值。 - **char**: 占用 1 字节,存储单个字符。 - **signed char**: 占用 1 字节,带符号的字符类型。 - **unsigned char**: 占用 1 字节,无符号的字符类型。 - **wchar_t**: 占用 2 字节,宽字符类型,通常用于 Unicode 字符。 - **short**: 占用 2 字节,短整型。 - **unsigned short**: 占用 2 字节,无符号短整型。 - **int**: 占用 4 字节,整型。 - **unsigned int**: 占用 4 字节,无符号整型。 - **long**: 占用 4 字节,长整型。 - **unsigned long**: 占用 4 字节,无符号长整型。 - **float**: 占用 4 字节,单精度浮点数。 - **double**: 占用 8 字节,双精度浮点数。 - **long double**: 占用 8 字节,长双精度浮点数。 - **2.2 字面值** - 字面值可以直接写在程序中,例如数字、字符、字符串等。 - **char** 类型的字面值如 `'A'`, `'Z'`, `'8'`, `'*'`。 - **wchar_t** 类型的字面值如 `L'A'`, `L'Z'`, `L'8'`, `L'*'`。 - **int** 类型的字面值如 `-77`, `65`, `12345`, `0x9FE`。 - **unsigned int** 类型的字面值如 `10U`, `64000U`。 - **long** 类型的字面值如 `-77L`, `65L`, `12345L`。 - **unsigned long** 类型的字面值如 `5UL`, `999999999UL`。 - **float** 类型的字面值如 `3.14f`, `34506f`。 - **double** 类型的字面值如 `1.414`, `2.71828`。 - **long double** 类型的字面值如 `1.414L`, `2.71828L`。 - **bool** 类型的字面值如 `true`, `false`。 - 字符串字面值如 `const wchar_t: L"Catchmeifyoucan."` 和 `const char: "Catchmeifyoucan."`。 - **2.3 setw(n)** - `setw(n)` 是一个在 `<iomanip>` 头文件中定义的操作符,用于设置输出字段的宽度。 ```cpp #include <iostream> #include <iomanip> using std::cout; using std::endl; using std::setw; int main() { long i = 0, power = 0; const int max = 10; for (i = 0, power = 1; i <= max; i++, power += power) cout << endl << setw(10) << i << setw(10) << power; cout << endl; return 0; } ``` - 上述代码展示了如何使用 `setw(n)` 来格式化输出。 - **2.4 转义序列** - 转义序列用于表示特殊字符。 - `\a`: 发出蜂鸣声。 - `\n`: 换行。 - `\'`: 单引号。 - `\\`: 反斜杠。 - `\b`: 退格。 - `\t`: 制表符。 - `\"`: 双引号。 - `\?`: 问号。 - **2.5 逗号运算符** - 逗号运算符可以连接多个表达式,并返回最后一个表达式的值。 ```cpp long num1 = 0, num2 = 0, num3 = 0, num4 = 0; num4 = (num1 = 10, num2 = 20, num3 = 30); cout << endl << num4 << endl; return 0; ``` - 输出结果为 30,因为逗号运算符返回最后一个表达式的值。 - **2.6 类型转换** - 类型转换有两种:隐式类型转换和显式类型转换。 - **隐式类型转换**: 自动进行,无需程序员显式指定。 - **显式类型转换**: - `static_cast<要转换成的类型>(表达式)`:在编译时进行检查,运行时不进行额外检查。 - `dynamic_cast<要转换成的类型>(表达式)`:在运行时进行检查,适用于继承关系中的对象转换。 - `const_cast<要转换成的类型>(表达式)`:用于去除或添加表达式的 `const` 属性。 - `reinterpret_cast<要转换成的类型>(表达式)`:无条件强制转换,可能改变数据的意义。 - **老式类型转换**: - `(要转换成的类型)表达式`:尽量避免使用,因为它可能导致意外的行为。 - **2.7 移位运算** - 移位运算符用于对二进制位进行左移或右移操作。 - `number << 2`: 将 `number` 的二进制表示向左移动两位。 - 注意:必须使用括号来明确优先级,否则可能会被解释为流运算符。 ```cpp cout << (number << 2); ``` 以上是 VC++2005 入门经典学习笔记的部分内容,包含了第一章至第二章的主要知识点。这些知识点对于初学者来说非常重要,可以帮助他们理解 C++ 编程的基础概念和技术细节。
剩余63页未读,继续阅读
- 粉丝: 41
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python+SQL Server的实验室管理系统python数据库管理系统
- 离线xml转json的html代码
- springboot学生综合测评系统 PPT
- 油雾分离器工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- hadoop-大数据技术中的Hadoop架构与应用解析
- CH340系列PDF数据手册
- IMG_20241225_103252.jpg
- 批量调整表格的行高Python实现源代码(不存在多行合并)
- silvaco学习资料!
- 职工工资表接近满分作业包含所有源文件
- 不同操作系统上tomcat安装与配置教程指南
- 纯js实现国密算法:sm2,sm3,sm
- 安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文档
- selenium自动化测试工具详解:核心组件、编程语言支持及应用场景
- 大数据架构初步规划与应用
- 代码审核管理规范1.0