奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 535|回复: 0

西交《程序设计基础》faq(三)

[复制链接]

1万

主题

3

回帖

2万

积分

论坛元老

积分
29086
发表于 2021-3-16 17:25:47 | 显示全部楼层 |阅读模式
扫码加微信
西交《程序设计基础》FAQ(三)
第三章 C语言语句与结构化程序的三种基本结构
一、如何理解给变量赋初值、变量的初始化、赋值表达式这三个不同的概念?
1)给变量赋初值:就是在定义变量的同时,或者变量定义之后给变量进行赋值。(包含了变量初始化这一层面)
例1:int i=0,j=0,k=0;
例2:int i,j,k;i=0;j=0;k=0
2)变量初始化:在变量定义的同时赋以初值的方法,称之为变量初始化。
例:int i=0,j=0,k=0;
但是在变量的初始化声明中不允许连续赋值。
例:int i=j=k=0; 这句是错误的。由于表达式i=j=k=0,可以理解为i=(j=(k=0)),显然,j和k变量还未声明变量类型,就要去赋值和接受赋值,显示是不合法的。
3)赋值表达式:由赋值运算符“=”连接的式子称之为赋值表达式。一般形式为:变量=表达式。赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。
例:
int i,j,k;
i=j=k=0;
因为表达式i=j=k=0 等价于 i=(j=(k=0))。因为i,j,k三个变量都已经预先声明为int型了,是合法的赋值运算,所以是正确的! 二、对赋值表达式和赋值语句有些迷糊,他们有很大的区别吗?
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的: if((x=y+5)>0) z=x; 语句的功能是,若表达式x=y+5大于0则z=x。下述语句是非法的: if((x=y+5;)>0) z=x; 因为=y+5;是语句,不能出现在表达式中。三、为什么说int a=b=C=5是错误的?
这个问题涉及到在变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。
在变量说明中,不允许连续给多个变量赋初值。所以 int a=b=C=5 必须写为 int a=5,b=5,C=5; 而赋值语句允许连续赋值。
本内容由易百网整理发布
网址 www.openhelp100.com
联系方式QQ 515224986
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-5-19 02:41

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表