讲解C++基础知识
内容目录:
1.C++ 基本数据类型和表达式
2.C++ 无条件转移控制
3.C++ 子程序间的数据传递
4.C++ main函数的返回值
5.C++ 标识符的作用域文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
教程开始:文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
C++ 基本数据类型和表达式文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
1. C++是一种静态类型语言(运行前指定每个数据的类型),也是一种强类型语言(对数据的操作进行严格的类型检查)。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
2. bool类型数据在算术运算时true对应1,false对应0。文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
3. typedef给已有类型取别名文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
typedef ;文章源自灵鲨社区-https://www.0s52.com/bcjc/cyyjc/1079.html
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. 类空间作用域
本期的先到这里下次继续
评论