1、,C/C+基础(上),讲师:一个好人,版权归一个好人与 浪曦视频在线 共同所有,2019年6月9日,第2页,变量与常量,什么是变量变量是存储信息的地方。 是内存中的一个地址,在这个地址中可以进行数据的存储和读取。 定义一个变量int A;unsigned short B;long C;char D;float E;double F;,2019年6月9日,第3页,大小写敏感性/关键字 一次创建多个变量 / 给变量赋值 / 自定义类型int A , B , C , D ;int A ;A=12 ;typedef char myName ;myName name_zh ;,变量与常量,2019年6月
2、9日,第4页,变量与常量,整型量的回绕 有符号/无符号 unsigned short int A=65535 ; / unsigned short (065535 ) A+1; / A= 65535 A / 0 short int B=32767; / short int (-3276832767) B+1; /B=32768 B /-32768,2019年6月9日,第5页,变量与常量,字符型变量 字符/数字char一个字符可解释为0255之间的一个数或某个ASCII码 字符是用 12或 “34” 字符在计算机里有对应的ASCII码值 编程时很有用 特殊字符,2019年6月9日,第6页,变量与
3、常量,常量 和变量一样是数据存储的位置,区别在于其值是不能被改变的,而且在创建时必须对其初始化,不能再向它赋值。 C+中有两中常量 字面常量/符号常量 字面常量 是指直接写入程序的数值 int A=12; A是整型变量 12就是字面常量不能再向它赋值,2019年6月9日,第7页,变量与常量,常量的定义 #define 定义常量 不定义类型 #define A 12 A在这里可能是(任何基本类型) 在编译时就是根据程序自动将12传入 const定义常量 定义类型 const int A=12; 易维护在编译时根据类型来正确使用,2019年6月9日,第8页,变量与常量,符号常量 const int
4、 A=12; const int B=34; int C ; C=A+B; C /46 A=21,B=23;/这里都是错误的 C=40;/这里是可以的,2019年6月9日,第9页,变量与常量,枚举型常量(特殊的数组) 枚举型常量使你能够创建一些新类型,再定义这些新类型的变量。 enum Array A, B, C, D, E, F ; Array就新类型枚举型的名字 A就是一个符号常量,其值为0。 B为1,C为2,D为3 enum Array A=1, B, C=5, D, E, F ; A值为0,B为2,C为5,D为6,2019年6月9日,第10页,表达式和语句,语句 是控制程序的执行顺序、
5、计算表达式的值、或者什么都不做(即空语句)。A=B+C; 表达式 如 int A=12;A+=23; 用 int A=12;A+=23; 用 开始 用 结束这里就块 或者说复合语句,2019年6月9日,第11页,表达式和语句,运算符 赋值运算符 A=A+b; 数学运算符 加(+) 减(-) 乘(*) 除(/) 取模( %) 整型量除法和取模 除(/) 5/2=2取模( %) 5/2=1 自加与自减 C+ ; 如同 C=C+1 或 C+=1 /使C加1C-; 如同 C=C-1 或 C-=1 /使C减1,2019年6月9日,第12页,表达式和语句,前置 int A=12;int B=+A; / A
6、先自加1 赋值给B B与A的值都为13 后置 int C=12;int D=C+; / C赋值给D D的值都为12 C再自加1 为13 优先级 关系运算符 逻辑运算符 运算符的分类,2019年6月9日,第13页,表达式和语句,if语句 if(表达式) 语句 ; else 语句 ; 逻辑运算符 逻辑“与” if(a=0&b=0) a与b 都等于0才为真 逻辑“或” if(a=0|b=1) a等于0 或 b等于1 才为真 逻辑“非” if( ! ( a=0) a不等于0 才为真if( a! =0)if( !a) /这里是不为0 才为真,2019年6月9日,第14页,表达式和语句,switch 语句
7、 switch(表达式) case 值1 : 语句 ; break ; case 值N : 语句 ; break ; default: 语句 ; break ; ,2019年6月9日,第15页,表达式和语句,条件运算符(三目运算符) ?: (表达式1)?(表达式2):(表达式3)e=(ab)? c : d ;如果a小于b 为真 就把 c 赋值给 e如果a不小于b 为假 就把 d 赋值给 e,2019年6月9日,第16页,程序流程,循环 原始的循环语句(goto) goto 实际上是汇编的产物 (无条件跳转)不再使用 维护性差 while 循环 while (表达式) 语句; continue
8、跳转 到循环体顶部 break 跳出循环体 执行下一条语句(中断) continue 或 break 是与 if 语句配合使用,2019年6月9日,第17页,程序流程控制,while 循环的另一个种形式 do /先执行 语句 ; /执行了一次 while (表达式) /后判断,2019年6月9日,第18页,程序流程控制,for 循环(用的最多的循环语句) for(初始化;测试;自加) 语句 ; for 语句 无限循环(空的for循环语句 ) for ( ; ) / 是两个双引号 语句 ;if (初始化;测试;自加) break; /用if语句来结束无限循环 ,2019年6月9日,第19页,程序
9、流程控制,嵌套循环 for(初始化;测试;自加) /第一层 for(初始化;测试;自加) /前面的先循环 语句; for(初始化;测试;自加) /里面的先循环 for(初始化;测试;自加) /同等级里面的先循环 语句; ,2019年6月9日,第20页,函数,函数 实际是能够对数据进行处理并返回一个值的子程序 函数定义的一般形式(无参数/有参数) 类型标识符 函数名() 类型标识符 函数名(形式参数表列) 声名部分 : 声名部分:语句; 语句; ,2019年6月9日,第21页,函数,局部变量 传递给函数的变量 内部声明的变量 /这种变量只存在该函数本身 作用域只能在该程序块的范围内有效 全局变量
10、 在任一函数外定义的变量 作用域对程序中的任何函数均有效(也包括main()函数) 全局变量因 易出错 难维护 不再使用,2019年6月9日,第22页,函数,函数的语句 函数变元 使用函数作为函数的参数 用参数作为局部变量 返回值 默认参数 函数重载(函数的多态性) 内嵌函数(关键字 inlin ),2019年6月9日,第23页,函数,递归(函数调用本身) 函数是如何工作的,2019年6月9日,第24页,面向对象编程,先不说面向对象编程,就生活中的事来说什么是面向对象,我是这样理解的面向对象,本身就你要应对的具体的事物。面向对象编程,我有我的理解,解决生活中具体事物的方法另一中描述。 具体的事
11、物 都有特征 都有行为,2019年6月9日,第25页,面向对象编程,创建新类型 类和成员 声明一个类class I char name;bool sex;unsigned short age; ;,2019年6月9日,第26页,面向对象编程,定义一个对象 定义一个新类型的对象和定义一个整型变量一样 类与对象 简单的说 一个定义 (理论)一个是实例化运行(实践) 访问类的成员 给对象赋值 私有/公有(public private),2019年6月9日,第27页,面向对象编程,使成员数据私有 私有性/安全性将方法或数据声明为私有能使编译器发现你的错误(bug) 实现类的方法 构造函数/析构函数 (创建一个类 本身就创建了默认的一个构造函数和一个析构函数) 构造函数用来初始化对象,2019年6月9日,第28页,面向对象编程,成员函数 const 把方法声明为常量(前提是不改变类的任何一个成员变量的值) 用其他类作为成员数据,感谢您对浪曦的支持,http:/,