嵌入式Linux下C程序设计--02-0简单程序设计[总结]_第1页
嵌入式Linux下C程序设计--02-0简单程序设计[总结]_第2页
嵌入式Linux下C程序设计--02-0简单程序设计[总结]_第3页
嵌入式Linux下C程序设计--02-0简单程序设计[总结]_第4页
嵌入式Linux下C程序设计--02-0简单程序设计[总结]_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式嵌入式Linux下下QT程序设计程序设计 主讲:成宝宗 简单程序设计 3 本章主要内容 基本数据类型和表达式 数据的输入与输出 程序控制语句 自定义数据类型 4 C+语言的产生 C+是从C语言发展演变而来的,首先是一个更好的C 引入了类的机制,最初的C+被称为“带类的C” 1983年正式取名为C+ 从1989年开始C+语言的标准化工作 于1994年制定了ANSI C+标准草案 于1998年11月被国际标准化组织(ISO)批准为国际标准,成为 目前的C+ 5 C+的特点 全面兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不

2、是一个纯正的面向 对象的语言 支持面向对象的方法 6 C+字符集 大小写的英文字母:AZ,az 数字字符:09 特殊字符: ! !# #% % ;. ., ,: :? ?( () ) 7 词法记号 关键字关键字C+C+预定义的单词预定义的单词 标识符标识符程序员声明的单词,它命名程序正文中的一些实体程序员声明的单词,它命名程序正文中的一些实体 文字文字在程序中直接使用符号表示的数据在程序中直接使用符号表示的数据 操作符操作符用于实现各种运算的符号用于实现各种运算的符号 分隔符分隔符 () , : ; () , : ; 用于分隔各个词法记号或程序正文用于分隔各个词法记号或程序正文 空白符空白符空

3、格、制表符(空格、制表符(TABTAB键产生的字符)、垂直制表符、换键产生的字符)、垂直制表符、换 行符、回车符和注释的总称行符、回车符和注释的总称 8 标识符的构成规则 以大写字母、小写字母或下划线(_)开始。 可以由以大写字母、小写字母、下划线(_)或数字09 组成。 大写字母和小写字母代表不同的标识符。 表1-1 常用基本数据类型描述 类 型说 明长度表 示 范 围备 注 bool逻辑型1false,true char字符型1-128127-27(27-1) unsigned char无符号字符型10255 0(28-1) short短整形2-3276832767-215(215-1)

4、unsigned short无符号短整型20655350(216-1) int整型4- 2 1 4 7 4 8 3 6 4 8 2147483647 -231(231-1) unsigned int无符号整型4042949672950(232-1) long长整型4- 2 1 4 7 4 8 3 6 4 8 2147483647 -231(231-1) unsigned long无符号长整型4042949672950(232-1) float浮点型4-3.410383.410387位有效位 double双精度8-1.7103081.71030815位有效位 long double长双精度8-1

5、.7103081.71030815位有效位 常量 C+程序中的数据可分为常量与变量两大类。常量是在程 序运行过程中不变的量,变量是在程序运行过程中可发生 变化的值。在编程时,常量和变量必须遵循“先声明,后 使用”的原则,即所有常量和变量必须在使用前用说明语 句进行说明,否则编译时将会产生错误。 声明常量 根据常量的定义方法区分,常量可分为如下两种: const常量 宏常量 其中,用const定义的常量,称为正规常量,其说明语句 的一般形式为: const = ; 而宏常量是用#define定义的常量,其说明语句的一般形 式为: #define 变量 变量可以用来存储程序中需要处理的数据。在使用

6、变量前 ,需要使用声明语句对变量进行声明。C+中变量说明语 句的一般形式为: ; 变量名表的格式主要有如下的三种: = =,=, 14 变量的存储类型 auto 属于一时性存储,其存储空间可以被若干变量多次覆 盖使用。 register 存放在通用寄存器中。 extern 在所有函数和程序段中都可引用。 static 在内存中是以固定地址存放的,在整个程序运行期间 都有效。 运算符和表达式 运算符 C+语言中的运算符是可以让C+语言编译器能够识别的 具有运算意义的符号。编译器把这些符号及其组成的表达 式翻译成相应的机器代码,就可以由计算机运行得出正确 的结果。 C+提供的基本运算符有以下几种:

7、算术运算符、关系运 算符、逻辑运算符、位运算符、条件运算符、赋值运算符、 逗号运算符、sizeof运算符及其它运算符(这是按功能分 的)。不同的运算符,需要指定的操作数的个数并不相同。 根据运算符需要的操作数的个数,可将其分为三种:单目 运算符(一个操作数)、双目运算符(两个个操作数)和 三目运算符(三个操作数)。 程序设计方法 程序设计(Programming)是指设计、编制、调试程序的 方法和过程。按照结构性质,有结构化程序设计与非结构 化程序设计之分。 结构化程序设计方法主要使用顺序、选择、循环三种基本 结构,形成具有复杂层次的结构化程序 面向对象程序设计方法是以“对象”为中心进行分析和

8、设 计的,使这些对象形成了解决目标问题的基本构件,即解 决从“怎么做”到“做什么”的问题。 运算符的优先级 优先级运算符功能说明结合性 1() : . , - . * ,- * 改变优先级 作用域运算符 数组下标 成员选择 成员指针选择 从左至右 2+ +,- 这就是语句了。计算机可以执行该语句,但它并不改变程 序的运行逻辑。当然,这条语句并没有实际意义。当一些 表达式组合起来,完成某一相对完整的功能后,再加一个 分号表示结束,这就组成一条语句。如下面的语句: a = 3 +2; 这就是一条赋值语句,其改变了a的值。 数据的输入与输出 I/O的书写格式 C+数据的输入与输出是通过I/O流来实现

9、的,I/O流输 入或输出的是一系列字节。当程序需要在屏幕上显示输出时, 可以使用插入符“”向cout输出流中插入字符。cout是预定义 的流类对象,“”是预定义的插入符,格式如下: cout 表达式表达式 例如,语句 cout”从cin输 入流中抽取字符,格式如下: cin表达式表达式 cin是预定义的流类对象,“”是预定义的提取符。例如: int a; char c; cinac; 要求从键盘上输入两个变量的值,两数之间以空格分隔。 若输入 4 8 这时,变量a获取值为4,变量b获取值为8的ASCII值38( 十六进制)。因为变量c的数据类型为char,cin能够知道输入的 变量类型。 数据

10、的输入与输出 简单的I/O格式控制 C+的I/O流类库提供了一些控制符,可以直接嵌 入到输入/输出语句中来实现I/O格式控制。使用格 式控制符首先必须在源程序的开头包含iomanip。 数据的输入与输出 常用的I/O流控制符 控 制 符含 义 Dec数值数据采用十进制 Hex数值数据采用十六进制 Oct数值数据采用八进制 以下带参数的操作符需要添加头文件iomanip Endl插入换行符,并刷新流 setfill(int)设置填空字符 setprecision(int)设置浮点数的小数位数(包括小数点) setw(int)设置域宽 在使用setw(n)时要注意: 如果一个输出量需要比setw(

11、n)确定的字 符数更多的字符,则该输出量将使用它所需要的宽 度。例如: float amount=3.14159; coutsetw(4)amountendl; 其运行结果为3.14159。它并不按4位宽度, 而是按实际宽度输出。 setw(n)仅仅影响下一个数值输出,换句 话说,使用setw设置的间隔方式并不保留其效力。 例如: coutsetw(8)1020 y) cout y) cout x; else cout y; if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else 语句 n 一般形式 if( ) if( ) 语句 1 e

12、lse 语句 2 else if( ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定层次关系。 一般形式 switch (表达式) case 常量表达式 1:语句1 case 常量表达式 2:语句2 case 常量表达式 n:语句n default : 语句n+1 switch 语句 执行顺序 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分 支最后应该加break语句。 每个常量表达式的值不能 相同,次序不影响执行结 果。 可以是多个语句,但不必 用 。 可以是整型、字符型、枚举型 32

13、while 语句 形式 while (表达式) 语句 可以是复合语句,其中必须含有 改变条件表达式值的语句。 执行顺序 先判断表达式的值,若为 true 时,执行语句。 do-while 语句 一般形式 do 语句 while (表达式) 可以是复合语句,其中必须含 有改变条件表达式值的语句。 执行顺序 先执行循环体语句,后判断条件。 表达式为 true 时,继续执行循环体 与while语句的比较: while 语句执行顺序 先判断表达式的值,为true时,再执行语句 对比下列程序: 程序1: #include using namespace std; int main() int i, su

14、m = 0; cin i; while (i = 10) sum += i; i+; cout sum= sum endl; return 0; 程序2: #include using namespace std; int main() int i, sum = 0; cin i; do sum += i; i+; while (i = 10); cout sum= sum endl; return 0; 3 4 35 for 语句 语法形式 for (初始语句;表达式1;表达式2) 语句 循环前先求解 为true时执行循环体 每次执行完循环体后求解 36 break语句 使程序从循环体和sw

15、itch语句内跳出,继续执行逻辑上 的下一条语句。不宜用在别处。 continue 语句 结束本次循环,接着判断是否执行下一次循环。 37 循环结构与选择结构相互嵌套 #include using namespace std; int main() for (int n = 100; n = 200; n+) if (n % 3 != 0) cout n; return 0; 38 编写程序输出以下图案 * * * * * * * #include using namespace std; int main() const int N = 4; for (int i = 1; i = N; i

16、+) /输出前4行图案 for (int j = 1; j = 8 - 2 * i; j+) cout ; for (int j = 1; j = 2 * i - 1; j+) cout *; cout endl; 3 9 /输出后3行图案 for (int i = 1; i = N - 1; i+) for (int j = 1; j = 7 - 2 * i ;j+) cout *; cout endl; return 0; 4 0 自定义数据类型 42 自定义数据类型:枚举类型enum 只要将需要的变量值一一列举出来,便构成了一个枚 举类型。 枚举类型的声明形式如下: enum 枚举类型名

17、 变量值列表; 例如: enum Weekday SUN, MON, TUE, WED, THU, FRI, SAT; 43 自定义数据类型:枚举类型enum 枚举类型应用说明: 对枚举元素按常量处理,不能对它们赋值。例如,不能写: SUN = 0; 枚举元素具有默认值,它们依次为: 0,1,2,.。 也可以在声明时另行指定枚举元素的值,如: enum WeekdaySUN=7,MON=1,TUE,WED,THU,FRI,SAT; 枚举值可以进行关系运算。 整数值不能直接赋给枚举变量,如需 要将整数赋值给枚举变量,应进行强 制类型转换。 44 自定义数据类型:结构体结构的声明 结构的概念 结构是由不同数据类型的数据组成的集合体。 声明结构类型 struct 结构名 数据类型 成员名 1; 数据类型 成员名 2; 数据类型 成员名 n; ; 45 自定义数据类型:结构体结构的声明 举例: struct Student /学生信息结构体 int num; /学号 string name; /姓名 char gender; /性别 int age; /年龄 float score; /成绩 string addr; /住址 ; 46 自定义数据类型:结构体结构变量说明 变量说明形式 结构名 结构变量名; 注意: 结构变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论