一.赋值语句及执行过程

<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语言》顺序结构程序设计相关推荐

  1. C语言顺序结构程序设计——对调数字and判断三角形

    最全C系列题目!从0到管理系统 一.C语言数据类型及输出--体重是否正常.球的体积.计算存银行利息and浮点数长度与精度 二.C语言运算符与表达式--输出逆序数and二进制包含0和1的数量and判断是 ...

  2. c语言顺序结构程序设计第4章答案,第4章顺序结构程序设计习题及答案.doc

    第4章顺序结构程序设计习题及答案 第4章 顺序结构程序设计 4-1 C语言的控制语句有哪些? 答:C语言有九条控制语句: 条件语句:if-else语句. 开关语句:switch语句. 当循环语句:wh ...

  3. C语言顺序结构程序设计PPT,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第3章 顺序结构程序设计.pdf...

    [摘要]第3章 顺序结构程序设计 第3章 顺序结构程序设计 当你对C语言程序设计有了一定了解和掌握后, 在处理一些简单的任务时,若想根据程序书写的过程 顺序执行程序,这时应该如何处理呢? •顺序结构 ...

  4. C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...

    C语言程序设计第3章 顺序结构程序设计.pptx 第 6章 数组第 7章 函数第 8章 结构体.共用体和枚举类型第 9章 指针第 10章 文件目录页 Contents page第 1章 初识 C语言第 ...

  5. c语言 转换字母 顺序结构,C语言程序设计 顺序结构程序设计 C教学设计3单元V1.0.doc...

    教学设计 河北工业职业技术学院 "C语言程序设计"教学设计 系 别: 计算机技术系 设计教师: 宋铁桥 设计时间: 2017年4月25日 教学内容 第三单元 顺序结构程序设计 授课 ...

  6. C语言程序顺序结构1交换变量,C语言程序设计 顺序结构程序设计 习题.doc

    C语言程序设计 顺序结构程序设计 习题 一.选择题 1.putchar ( )函数可以向终端输出一个________ A)整型变量表达式值????? B)实型变量值 C)字符串???????????? ...

  7. c语言循环结构程序设计视频,第13讲:循环结构程序设计1

    C语言是计算机科学及应用专业的一门重要的专业基础 课,也是全校各 个专业的公共必修课程.它既可以为其它专业课程奠定程序设计的基础,又可以作为其它专业课程的程序设计的工具. 通过本课程的学习,应掌握计算 ...

  8. c语言 教学目标,c语言选择结构程序设计教学目标

    c语言选择结构程序设计教学目标 <选择结构程序设计>教学目标 能力要求: a) 能够使用 if 语句编写条件选择程序 b) 能够使用嵌套 if 语句和 switch 语句编写多分支选择结构 ...

  9. c语言选择结构作用,c语言选择结构程序设计教案

    <c语言选择结构程序设计教案>由会员分享,可在线阅读,更多相关<c语言选择结构程序设计教案(16页珍藏版)>请在人人文库网上搜索. 1.选择结构程序设计(一)说明内容1关系运算 ...

  10. c语言程序结构设计教案,大学课程-c语言选择结构程序设计教案

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

最新文章

  1. python入门指南pdf-跟老齐学Python+从入门到精通 PDF 下载
  2. 项目经理这些技能,是项目成功的关键保障
  3. 构建忽略测试_分类测试以减少构建时间
  4. linux 命令pg,linux下操作PostgreSQL的常用命令
  5. 完善博文 共享内存一写多读无锁实现的代码逻辑部分
  6. 免费体验,阿里云智能LOGO帮你解决设计难题
  7. Hadoop开发第6期---HDFS的shell操作
  8. Wpf从资源中重用UI元素
  9. 学了N年英语,你学会翻译了吗?——最基本的数据库连接
  10. 可视化排班管理_呼叫中心外包之管理要点与数据分析对策
  11. 有关笔记本电脑安装触控板驱动程序,对触控板进行相应的设置步骤
  12. Pytorch 操作整理
  13. 恒生电子笔试、面试经历
  14. linux读取文件头错误,Linux系统grub常见错误问题解决
  15. 观点 | 如何让智慧城市这头巨象跳芭蕾?
  16. JavaScript 和读取服务器cookie
  17. 微信公众号开发02----自定义菜单及菜单功能实现
  18. 【JAVA】GUI常用组件
  19. FDM打印机使用总结(三)
  20. 机器学习-47-ML-03-Metric-based Approach Train+Test as RNN(元学习-support set和query set用于同一网络的方法)

热门文章

  1. 数据挖掘(3.1)--频繁项集挖掘方法
  2. 大麻病毒详细介绍与汇编分析
  3. startsWith(),endsWith()的作用和用法
  4. javax.mail.MessagingException: Could not connect to SMTP host: smtp.xdf.cn
  5. BugkuCTF_MISC——“多种方法解决”、“闪的好快”
  6. 2015年下半年阅读书单
  7. 判断给定序列是否为BST后序遍历序列
  8. RegexBuddy布局异常修复方法
  9. Git教程:! [rejected]        master - master (fetch first)解决办法
  10. 写文章一年了,我用到的工具都在这儿了