版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 30246.6-2013家庭网络 第6部分:多媒体与数据网络通信协议》
- 深度解析(2026)《GBT 30151-2013高纯锗γ谱仪本底谱的特性》
- 深度解析(2026)《GBT 29893-2023轻型木结构锯材用原木》
- 深度解析(2026)《GBT 29866-2013纺织品 吸湿发热性能试验方法》
- 深度解析(2026)《GBT 29716.2-2018机械振动与冲击 信号处理 第2部分:傅里叶变换分析的时域窗》
- 《GBT 5567-2013橡胶和塑料软管及软管组合件 耐真空性能的测定》(2026年)合规红线与避坑实操手册
- 《GBT 1467-2008冶金产品化学分析方法标准的总则及一般规定》(2026年)合规红线与避坑实操手册
- 《DLT 1323-2014现场宽频率交流耐压试验电压测量导则》(2026年)合规红线与避坑实操手册
- 2026年食品厂调料供应协议
- 砂纸砂布转换加工及仓储物流项目可行性研究报告模板立项申批备案
- 养老社区2025年定位手环协议
- 2026年医学微生物学复习押题宝典通关考试题库附答案详解【突破训练】
- 2026云南楚雄州武定县事业单位选调37人备考题库及答案详解(真题汇编)
- 高中政治必修+选必核心答题术语(简化版)
- 经典酒店设计案例分析
- (2026春新版)北师大版二年级数学下册全册教学设计
- 建筑工程英语英汉对照工程词汇
- 酒店厨房奖罚制度培训
- 2023年海南省工会系统招聘考试题库及答案解析word版
- 大管轮实习记录簿【范本模板】
- 数学七年级下学期1.28 平行线-角度旋转问题
评论
0/150
提交评论