《C语言》顺序结构程序设计
一.赋值语句及执行过程
<1>赋值语句
赋值表达式后面加一个分号,就是赋值语句,格式如下:
变量=表达式 ; //有分句,是赋值语句
赋值号左侧通常是变量,右侧通常是一个表达式,但也可以是常量或者变量
<2>赋值的执行过程
赋值时,赋值号右侧表达式的值要先计算出结果,并且要在运算器中把这个结果处理成想应的格式(若是整数,则为补码表示),最后才存给变量。赋值的最后一步操作,就是把计算机从运算器写到内存变量中。
二.赋值的几种数据处理方式
<1>变量和表达式结果的长度相同,则原样复制
若变量和表达式结果所占字节数相同,则之际把表达式结果的存储状态(已经在运算器中处理成相应格式的二级制数据了)原样复制到内存变量中。例如:
int a;
short b;
unsigned short c=65535;
a=200/2;
b=c;
printf("%d,%hd\n",a,b);
运行结果:100,-1
【程序解析】
执行“a=200/2”;时,先计算200/2得到100,因为100是整数,故这个结果要在运行器中处理成编码00000000 00000000 00000000 01100100,而变量a在内存中也恰好也是存补码,且长度也是4个字节,所以就直接把这个补码原样搬到a的4个字节中。
赋值的处理方式(原样赋值)
<2>若变量比表达式结果“短”,则只截取低位部分
若表达式结果所占字节数比变量多,则只截取低字节部分存给变量,多余的字节丢弃(溢出),例如:
short a,b;
int c=-1;
a=65536;
b=c;
printf("%hd,%hd\n",a,b);
运行结果:0,-1
【程序解析】
对于“a=65536”一行,因65536是整数(默认为int类型),其补码是4个字节:00000000 00000001 00000000 00000000,而变量a只有两个字节的内存空间,只能存16位,故截取低位2个字节(16个0)存储,高位两个字节丢弃(溢出)
赋值的处理方式(截取)
<3>若变量比表达式结果“短”而变量“长”,则一般要进行符号扩展
若是表达式结果“短”而变量“长”,则一般进行符号扩展,例如:
long a,b;
short c=1,d=-1;
char e='A';
a=c; //符号扩展,c的符号位是0,所以用0填充a的两个高位字节
b=d; //符号扩展,d的符号位是1,所以用1填充b的两个高位字节
c=e; //是否符号扩展?
printf("%ld,%ld,%hd\n",a,b,c);
运行结果:1,-1,65
【程序解析】
程序中“a=c;”和“b=d”,都是把2字节的“短”数据赋值给4字节的“长”变量,赋值时,系统首先把“短”数据的两个字节原样复制到“长”变量的低位上,“长”变量高位的两个字节,则用“短”数据的符号位(即最高位)填满。
赋值的处理方式 (符号扩展)
《C语言》顺序结构程序设计相关推荐
- C语言顺序结构程序设计——对调数字and判断三角形
最全C系列题目!从0到管理系统 一.C语言数据类型及输出--体重是否正常.球的体积.计算存银行利息and浮点数长度与精度 二.C语言运算符与表达式--输出逆序数and二进制包含0和1的数量and判断是 ...
- c语言顺序结构程序设计第4章答案,第4章顺序结构程序设计习题及答案.doc
第4章顺序结构程序设计习题及答案 第4章 顺序结构程序设计 4-1 C语言的控制语句有哪些? 答:C语言有九条控制语句: 条件语句:if-else语句. 开关语句:switch语句. 当循环语句:wh ...
- C语言顺序结构程序设计PPT,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第3章 顺序结构程序设计.pdf...
[摘要]第3章 顺序结构程序设计 第3章 顺序结构程序设计 当你对C语言程序设计有了一定了解和掌握后, 在处理一些简单的任务时,若想根据程序书写的过程 顺序执行程序,这时应该如何处理呢? •顺序结构 ...
- C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...
C语言程序设计第3章 顺序结构程序设计.pptx 第 6章 数组第 7章 函数第 8章 结构体.共用体和枚举类型第 9章 指针第 10章 文件目录页 Contents page第 1章 初识 C语言第 ...
- c语言 转换字母 顺序结构,C语言程序设计 顺序结构程序设计 C教学设计3单元V1.0.doc...
教学设计 河北工业职业技术学院 "C语言程序设计"教学设计 系 别: 计算机技术系 设计教师: 宋铁桥 设计时间: 2017年4月25日 教学内容 第三单元 顺序结构程序设计 授课 ...
- C语言程序顺序结构1交换变量,C语言程序设计 顺序结构程序设计 习题.doc
C语言程序设计 顺序结构程序设计 习题 一.选择题 1.putchar ( )函数可以向终端输出一个________ A)整型变量表达式值????? B)实型变量值 C)字符串???????????? ...
- c语言循环结构程序设计视频,第13讲:循环结构程序设计1
C语言是计算机科学及应用专业的一门重要的专业基础 课,也是全校各 个专业的公共必修课程.它既可以为其它专业课程奠定程序设计的基础,又可以作为其它专业课程的程序设计的工具. 通过本课程的学习,应掌握计算 ...
- c语言 教学目标,c语言选择结构程序设计教学目标
c语言选择结构程序设计教学目标 <选择结构程序设计>教学目标 能力要求: a) 能够使用 if 语句编写条件选择程序 b) 能够使用嵌套 if 语句和 switch 语句编写多分支选择结构 ...
- c语言选择结构作用,c语言选择结构程序设计教案
<c语言选择结构程序设计教案>由会员分享,可在线阅读,更多相关<c语言选择结构程序设计教案(16页珍藏版)>请在人人文库网上搜索. 1.选择结构程序设计(一)说明内容1关系运算 ...
- c语言程序结构设计教案,大学课程-c语言选择结构程序设计教案
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...
最新文章
- python入门指南pdf-跟老齐学Python+从入门到精通 PDF 下载
- 项目经理这些技能,是项目成功的关键保障
- 构建忽略测试_分类测试以减少构建时间
- linux 命令pg,linux下操作PostgreSQL的常用命令
- 完善博文 共享内存一写多读无锁实现的代码逻辑部分
- 免费体验,阿里云智能LOGO帮你解决设计难题
- Hadoop开发第6期---HDFS的shell操作
- Wpf从资源中重用UI元素
- 学了N年英语,你学会翻译了吗?——最基本的数据库连接
- 可视化排班管理_呼叫中心外包之管理要点与数据分析对策
- 有关笔记本电脑安装触控板驱动程序,对触控板进行相应的设置步骤
- Pytorch 操作整理
- 恒生电子笔试、面试经历
- linux读取文件头错误,Linux系统grub常见错误问题解决
- 观点 | 如何让智慧城市这头巨象跳芭蕾?
- JavaScript 和读取服务器cookie
- 微信公众号开发02----自定义菜单及菜单功能实现
- 【JAVA】GUI常用组件
- FDM打印机使用总结(三)
- 机器学习-47-ML-03-Metric-based Approach Train+Test as RNN(元学习-support set和query set用于同一网络的方法)
热门文章
- 数据挖掘(3.1)--频繁项集挖掘方法
- 大麻病毒详细介绍与汇编分析
- startsWith(),endsWith()的作用和用法
- javax.mail.MessagingException: Could not connect to SMTP host: smtp.xdf.cn
- BugkuCTF_MISC——“多种方法解决”、“闪的好快”
- 2015年下半年阅读书单
- 判断给定序列是否为BST后序遍历序列
- RegexBuddy布局异常修复方法
- Git教程:! [rejected] master - master (fetch first)解决办法
- 写文章一年了,我用到的工具都在这儿了