From a3885719ad2f0d0640200f738f3fca3896eb50b1 Mon Sep 17 00:00:00 2001 From: Lion Chan Date: Mon, 19 Mar 2018 21:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=AC=A6=E5=8F=B7=E5=B8=B8?= =?UTF-8?q?=E9=87=8F=EF=BC=8C=E8=BF=90=E7=AE=97=E7=AC=A6=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E5=AE=8F=E7=AD=89=E5=9F=BA=E7=A1=80=E5=86=85=E5=AE=B9=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=AB=98=E7=BA=A7=E5=AE=8F=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Chapter2 C与C++/2.1 基础语法.md | 39 +++++++++++++++++++ ... 类、继承和多态.md => 2.10 C++对C的扩展.md} | 0 ...ic和const成员.md => 2.11 类、继承和多态.md} | 0 ...函数和接口.md => 2.12 static和const成员.md} | 0 ... 程序的内存结构.md => 2.13 虚函数和接口.md} | 0 ...加载、运行和关闭.md => 2.14 程序的内存结构.md} | 0 ...机题.md => 2.15 程序的加载、运行和关闭.md} | 0 .../{2.5 数组.md => 2.16 上机题.md} | 0 .../{2.6 结构体与联合体.md => 2.5 高级宏操作} | 0 .../{2.7 高级指针.md => 2.6 数组.md} | 0 ...过程与面向对象.md => 2.7 结构体与联合体.md} | 0 .../{2.9 C++对C的扩展.md => 2.8 高级指针.md} | 0 Chapter2 C与C++/2.9 面向过程与面向对象.md | 0 13 files changed, 39 insertions(+) rename Chapter2 C与C++/{2.10 类、继承和多态.md => 2.10 C++对C的扩展.md} (100%) rename Chapter2 C与C++/{2.11 static和const成员.md => 2.11 类、继承和多态.md} (100%) rename Chapter2 C与C++/{2.12 虚函数和接口.md => 2.12 static和const成员.md} (100%) rename Chapter2 C与C++/{2.13 程序的内存结构.md => 2.13 虚函数和接口.md} (100%) rename Chapter2 C与C++/{2.14 程序的加载、运行和关闭.md => 2.14 程序的内存结构.md} (100%) rename Chapter2 C与C++/{2.15 上机题.md => 2.15 程序的加载、运行和关闭.md} (100%) rename Chapter2 C与C++/{2.5 数组.md => 2.16 上机题.md} (100%) rename Chapter2 C与C++/{2.6 结构体与联合体.md => 2.5 高级宏操作} (100%) rename Chapter2 C与C++/{2.7 高级指针.md => 2.6 数组.md} (100%) rename Chapter2 C与C++/{2.8 面向过程与面向对象.md => 2.7 结构体与联合体.md} (100%) rename Chapter2 C与C++/{2.9 C++对C的扩展.md => 2.8 高级指针.md} (100%) create mode 100644 Chapter2 C与C++/2.9 面向过程与面向对象.md diff --git a/Chapter2 C与C++/2.1 基础语法.md b/Chapter2 C与C++/2.1 基础语法.md index 20d4a72..86076c6 100644 --- a/Chapter2 C与C++/2.1 基础语法.md +++ b/Chapter2 C与C++/2.1 基础语法.md @@ -181,11 +181,50 @@ ashort++; ``` # 2.1.7 符号常量 +有时候我们希望用一个符号来代替某个字面常量,这看起来很像一个不允许改变值的变量,我们用 const 关键字来修饰它,使之成为符号常量。例如: + +```cpp +const long cnvar0=666; +const char cnvar1='C'; +``` + +一个符号常量只能在定义时被初始化,并且不能够被再次赋值。例如下面做法是错的: + +```cpp +const int cnint = 256; +cnint++; +``` # 2.1.8 运算符 +c语言运算符主要包括赋值运算、算数运算、逻辑运算、位运算、比较运算等。运算符主要涉及到优先级,结合性y以及前加加和后加加的问题。例如: + +```cpp +int val=5, mask=0b0100; +printf("val=%d.\n", val++); // val=5. +printf("val=%d.\n", ++val); // val=7. + +if(val<=10 && val>=5) +{ + printf("True\n"); +} + +val &= mask; // val=4. +``` + # 2.1.9 宏 +通过使用宏,可以指导c编译器做一些特别的工作。例如使用define关键字来做一些替代的工作: +```cpp +#define BASE_ADDR (0x25) +#define REG1_OFFSET (0x01) +#define REG2_OFFSET (0x02) + +printf("Register 1 addr=0x%x.\n", BASE_ADDR+REG1_OFFSET); +printf("Register 2 addr=0x%x.\n", BASE_ADDR+REG2_OFFSET); +``` +这称作宏替换。宏替换可以提高程序的可移植性,例如上述例子中,只要修改 #define BASE_ADDR (0x25) 一处便可以修改所有寄存器的地址。 + # 2.1.10 指针 指针变量的长度与总线位宽有关,如32位机则指针变量长度为4,64位机为8。 diff --git a/Chapter2 C与C++/2.10 类、继承和多态.md b/Chapter2 C与C++/2.10 C++对C的扩展.md similarity index 100% rename from Chapter2 C与C++/2.10 类、继承和多态.md rename to Chapter2 C与C++/2.10 C++对C的扩展.md diff --git a/Chapter2 C与C++/2.11 static和const成员.md b/Chapter2 C与C++/2.11 类、继承和多态.md similarity index 100% rename from Chapter2 C与C++/2.11 static和const成员.md rename to Chapter2 C与C++/2.11 类、继承和多态.md diff --git a/Chapter2 C与C++/2.12 虚函数和接口.md b/Chapter2 C与C++/2.12 static和const成员.md similarity index 100% rename from Chapter2 C与C++/2.12 虚函数和接口.md rename to Chapter2 C与C++/2.12 static和const成员.md diff --git a/Chapter2 C与C++/2.13 程序的内存结构.md b/Chapter2 C与C++/2.13 虚函数和接口.md similarity index 100% rename from Chapter2 C与C++/2.13 程序的内存结构.md rename to Chapter2 C与C++/2.13 虚函数和接口.md diff --git a/Chapter2 C与C++/2.14 程序的加载、运行和关闭.md b/Chapter2 C与C++/2.14 程序的内存结构.md similarity index 100% rename from Chapter2 C与C++/2.14 程序的加载、运行和关闭.md rename to Chapter2 C与C++/2.14 程序的内存结构.md diff --git a/Chapter2 C与C++/2.15 上机题.md b/Chapter2 C与C++/2.15 程序的加载、运行和关闭.md similarity index 100% rename from Chapter2 C与C++/2.15 上机题.md rename to Chapter2 C与C++/2.15 程序的加载、运行和关闭.md diff --git a/Chapter2 C与C++/2.5 数组.md b/Chapter2 C与C++/2.16 上机题.md similarity index 100% rename from Chapter2 C与C++/2.5 数组.md rename to Chapter2 C与C++/2.16 上机题.md diff --git a/Chapter2 C与C++/2.6 结构体与联合体.md b/Chapter2 C与C++/2.5 高级宏操作 similarity index 100% rename from Chapter2 C与C++/2.6 结构体与联合体.md rename to Chapter2 C与C++/2.5 高级宏操作 diff --git a/Chapter2 C与C++/2.7 高级指针.md b/Chapter2 C与C++/2.6 数组.md similarity index 100% rename from Chapter2 C与C++/2.7 高级指针.md rename to Chapter2 C与C++/2.6 数组.md diff --git a/Chapter2 C与C++/2.8 面向过程与面向对象.md b/Chapter2 C与C++/2.7 结构体与联合体.md similarity index 100% rename from Chapter2 C与C++/2.8 面向过程与面向对象.md rename to Chapter2 C与C++/2.7 结构体与联合体.md diff --git a/Chapter2 C与C++/2.9 C++对C的扩展.md b/Chapter2 C与C++/2.8 高级指针.md similarity index 100% rename from Chapter2 C与C++/2.9 C++对C的扩展.md rename to Chapter2 C与C++/2.8 高级指针.md diff --git a/Chapter2 C与C++/2.9 面向过程与面向对象.md b/Chapter2 C与C++/2.9 面向过程与面向对象.md new file mode 100644 index 0000000..e69de29