C语言程序设计与应用 - 讲义 - 第6章-基于指针的秒值-时间值转换_第1页
C语言程序设计与应用 - 讲义 - 第6章-基于指针的秒值-时间值转换_第2页
C语言程序设计与应用 - 讲义 - 第6章-基于指针的秒值-时间值转换_第3页
C语言程序设计与应用 - 讲义 - 第6章-基于指针的秒值-时间值转换_第4页
C语言程序设计与应用 - 讲义 - 第6章-基于指针的秒值-时间值转换_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1第6章:基于指针的秒值-时间值转换——卓越工程师培养系列——2目录《C语言程序设计与应用》-配套讲义1.实验内容2.实验原理3.实验步骤4.本章任务5.本章习题3

通过键盘输入一个0~86399之间的值,包括0和86399,使用CalcTimeVal函数计算时间值(包括小时值、分钟值和秒值),函数的输入为tick,输出为指针pTimeVal,即pTimeVal指向时间值,返回值为是否计算成功标志,在主函数中通过调用CalcTimeVal实现秒值-时间值转换,并输出到控制台窗口。《C语言程序设计与应用》-配套讲义1.实验内容42.1大端模式和小端模式

采用大小端模式存放数据的主要区别在于存放的字节顺序,大端模式将高位存放在低地址,小端模式将高位存放在高地址。采用大端模式存放数据符合人类的正常思维,而采用小端模式存放数据利于计算机处理。《C语言程序设计与应用》-配套讲义2.实验原理值为0x12345675的32位int类型变量值为0x1234的16位short类型变量大端模式和小端模式在内存中的存储方式52.2常用的三种数据类型的存储方式voidmain(void){inttick=0;shortarrTimeVal[3];unsignedcharcalcRightFlag=0;

tick=0x12345678;arrTimeVal[0]=0x1122;arrTimeVal[1]=0x3344;arrTimeVal[2]=0x5566;calcRightFlag=0x99;system("pause");}《C语言程序设计与应用》-配套讲义2.实验原理62.3什么是指针

《C语言程序设计与应用》-配套讲义2.实验原理公司地址与变量指针关系图地址与指针72.4指针变量的定义和使用

定义指针变量的一般形式如下:

类型名*指针变量名;

其中,“*”表示定义的是指针变量,类型名为该指针变量所指向的变量的数据类型。例如:int*pHour;《C语言程序设计与应用》-配套讲义2.实验原理8

在如下的指针变量使用方法举例中,pHour为指针变量,该指针变量指向一个整型的变量hour。inthour;int*pHour;pHour=&hour;

在如下的指针变量使用方法举例中,指针变量的定义和初始化是一条语句。inthour;int*pHour=&hour;《C语言程序设计与应用》-配套讲义2.实验原理92.5指针变量注意事项

指针用好了可以编写出优秀的程序,用不好就可能出现Bug,甚至导致程序崩溃。

使用指针时要注意两点:(1)指针一定要定义类型,因为指针不仅可以指向单字节变量,还可以指向双字节变量及其他类型的变量,若指针未定义类型则无法使用;(2)指针在使用前一定要进行初始化,因为未初始化的指针就是野指针,会导致不可预知的后果。如果某一指针指向内存中比较重要的地方,对该指针进行操作可能会导致系统异常,比如,系统提示指针指向了一个不可用的地址。因此,指针变量在使用前一定要初始化。《C语言程序设计与应用》-配套讲义2.实验原理102.6指针与数组

数组名即为数组的地址,也是数组的首地址。例如:unsignedchararr[4]={0x11,0x22,0x33,0x44};

该数组在存储器中的存储方式如图6‑5所示,arr即为数组的地址,即arr=0x0018FF38,arr[0]的地址也为0x0018FF38,即&arr[0]=0x0018FF38。《C语言程序设计与应用》-配套讲义2.实验原理数组在存储器中的存储方式数组和指针的对应关系112.7用if语句实现选择结构

if语句是最简单的选择流程语句,C语言中的选择结构主要是由if语句实现的,最常用的有三种形式,分别是:

(1)常用形式一:if(表达式){

语句1;}《C语言程序设计与应用》-配套讲义2.实验原理12

(2)常用形式二:if(表达式){

语句1;}else{

语句2;}《C语言程序设计与应用》-配套讲义2.实验原理13

(2)常用形式二:if(表达式1){

语句1;}…elseif(表达式n){

语句n;}else{

语句n+1;}《C语言程序设计与应用》-配套讲义2.实验原理142.8如何防止if(a==1)误写成if(a=1)?

在编写代码时,容易将if(a==1)误写为if(a=1),这样就会引入Bug。这是由于a=1是赋值语句,因此a=1恒成立,如执行完语句“b=(a=1);”后的结果就是b=1。这样,if(a=1)即为if(1),if(a=1)条件下的代码将会无条件执行,与判断语句if(a==1)的执行结果相违背,更重要的是一般的编译器不会报error或warnning。

为了避免出现这种Bug,本书建议将if(a==1)写为if(1==a),此时若误将if(1==a)写为if(1=a),编译器就会报error。《C语言程序设计与应用》-配套讲义2.实验原理152.9逻辑运算符

逻辑运算符有三种:与(AND),或(OR),非(NOT),在C语言中分别用符号“&&”,“||”,“!”来表示。《C语言程序设计与应用》-配套讲义2.实验原理逻辑运算符含义示例说明&&逻辑与m&&n若m和n都为真,则结果为真,否则为假||逻辑或m||n若m和n都为假,则结果为假,否则为真!逻辑非!m若m为真,则结果为假;若m为假,则结果为真162.9程序调试

调试,就是在程序运行过程中的某一阶段观测程序运行的状态,而通常程序是连续运行的,所以必须使程序在某一点停下来。首先,设置断点;其次,运行程序;最后,当程序在断点处停下来时,观察程序运行的状态。《C语言程序设计与应用》-配套讲义2.实验原理17《C语言程序设计与应用》-配套讲义3.实验步骤3.1复制Material中的文件夹到CProgramTest文件夹中3.2打开Project文件夹中的Project.sln文件3.3完善App.c文件3.4项目编译和运行18《C语言程序设计与应用》-配套讲义4.本章任务任务1:2020年总共有366天,将2020年1月1日作为计数起点,即计数1,2020年12月31日作为计数终点,即计数366。计数1代表“2020年1月1日-星期三”,计数10代表“2020年1月10日-星期五”。参照本章实验,通过键盘输入一个1~366之间的值,包括1和366,基于指针,将其转换为年、月、日、星期,并输出到控制台窗口。任务2:参照本章实验,通过键盘输入两个数,判断大小,并输出结果到控制台窗口。任务3:参照本章实验,通过键盘输入十个数,判断

温馨提示

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

最新文档

评论

0/150

提交评论