【C++教程】C++基础知识学习(1)

讲解C++基础知识

内容目录:
1.C++ 基本数据类型和表达式
2.C++ 无条件转移控制
3.C++ 子程序间的数据传递
4.C++ main函数的返回值
5.C++ 标识符的作用域

 

教程开始:

C++ 基本数据类型和表达式

1. C++是一种静态类型语言(运行前指定每个数据的类型),也是一种强类型语言(对数据的操作进行严格的类型检查)。

 

2. bool类型数据在算术运算时true对应1,false对应0。

 

3. typedef给已有类型取别名

typedef ;

 

4. 常量包括两种:字面常量和符号常量。

字面常量:直接写出来的

符号常量:又称命名常量,指有名字的常量,如 const double PI=3.1415; #define PI 3.1415

 

5. 符号常量的作用

1)增加程序易读性

2)提高程序对常量使用的一致性

3)增强了程序的易维护性

 

6. 定义 VS 声明

变量定义要给变量分配内存空间,而声明没有;定义可以初始化,声明不能。

声明: extern ;

头文件中使用extern语句对一个文件中的全局函数进行声明;

函数使用一个全局变量但是还未见到其定义时使用extern语句对其进行声明。

 

7. 逻辑与 && 和逻辑或 || 是短路求值:当运算结果已经确定时,后面的表达式就不会再执行。

 

8. 类型转换

隐式类型转换 -> 显示类型转换

int i=-10; unsigned int j=1; i j 的值是false,而不是true

 

9. 操作符的优先级

1)按单目、双目、三目、赋值依次降低

2)按算术、移位、关系、逻辑位、逻辑依次降低

 

10. 表达式中操作数的类型转换

逐个操作符进行类型转换

如: short int a; int b; double c;

a*b/c; 先a > int, 然后(a*b) > double

 

C++ 无条件转移控制

1. goto转移控制

goto ;

是个标识符,定义格式为: ;

注意:不能用goto语句从函数外部转入函数的内部,也不能从函数内部转入到函数的外部;

一般情况,很少使用goto语句从复合语句外部转到复合语句内部,多用于从复合语句内部转到复合语句外部,如退出多重循环(goto语句会破坏程序的结构,只有偶尔在这种情况下才使用),但是要是否会跳过变量定义语句,否则该就goto语句是非法的。

 

2. break语句

结束switch语句的某个分支

退出它的循环语句

 

3. continue语句

只能用户循环体中,结束本次循环(也就是不在执行循环体中continue后面的语句),进入下一次循环(不是跳出循环体)。

 

4. return语句

直接返回

 

C++ 子程序间的数据传递

1. 通过全局变量

全局变量可以定义在函数外的任何地方,但是如果在使用一个全局变量时未见到它的定义,就要使用extern语句对其进行声明。

 

2. 通过子程序的参数和返回值机制

1)值传递:传递实参的一个拷贝,可以阻止子程序通过形参改变实参,但最多只能返回一个值

2)地址/引用传递:传递实参的地址,可以提高参数传递的效率,可以返回多个执行结果,但是会降低数据访问效率(通过间接的方式访问传输的数据)、可通过形参改变实参

C++ main函数的返回值

main函数通过返回值把整个程序的执行情况告诉调用者(通常是操作系统,但是操作系统通常会忽视main函数的返回值),一般情况下return 0表示正常结束,return -1表示非正常结束。

main函数也可以不写return语句,这时当执行完最后一条语句后自动执行一条“return 0;”语句。

其他函数的返回值原理同此。

 

C++ 标识符的作用域

包括:局部作用域、全局作用域、文件作用域、函数作用域、函数原型作用域、名空间作用域、类作用域

注意:潜在作用域,也就是同名变量的作用域问题。

1. 局部作用域

指在函数定义或者复合语句中,从标识符的定义点开始到函数或者复合语句结束之间的程序段。

在同一个局部作用域内不能出现相同名字的两个局部变量(包括形参)。

一个函数内的复合语句又是一个局部作用域,也就是在函数内有某个变量时,复合语句中可以有另外一个同名字的变量。

 

2. 全局作用域

指对构成C++程序的所有源文件。

在C++标准中,把全局作用域归于连接控制范畴。

通常把全局标识符的生命放在某个头文件中。

 

3. 文件作用域

指单独的一个源文件。

在全局标识符的定义中加上static修饰符,该全局标识符就变成了具有文件作用域的标识符。

 

4. 函数作用域

指由整个函数定义所构成的程序段。

语句标号(如goto语句中使用的语句标识)是唯一的具有函数作用域的标识符。

 

5. 函数原型作用域

指用于函数声明的函数原型,其中的形参的作用域从函数原型开始到函数原型结束。

如:void f(int x, double y); //其中的x和y的作用域从“(”开始到”)”结束。

 

6. 名空间作用域

无名的名空间定义不能在其他地方调用

 

7. 类空间作用域

本期的先到这里下次继续

标签

发表评论