### 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币余额
- 我的收藏
- 我的下载
- 下载帮助