-
2021-03-23 12:04:08更多相关内容
-
【C语言】C语言中赋值语句规则
2017-04-09 20:30:24赋值语句是由赋值表达式再加上分号构成的表达式语句。 其一般形式为: 变量=表达式; 在赋值语句的使用中需要注意以下几点: 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=...赋值语句是由赋值表达式再加上分号构成的表达式语句。
其一般形式为: 变量=表达式;在赋值语句的使用中需要注意以下几点:
由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成 嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式; 例如:
a=b=c=d=e=5;
按照赋值运算符的右接合性,因此实际上等效于:e=5; d=e; c=d; b=c; a=b;
注意在变量==说明==中给变量赋初值和赋值语句的区别。 给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。 例如:
int a=5,b,c;
在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的:
int a=b=c=5
必须写为int a=5,b=5,c=5;
而赋值语句允许连续赋值。- 注意赋值表达式和赋值语句的区别。 赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的:
if((x=y+5)>0) z=x;
这里(x=y+5)是赋值表达式,语句的功能是,若表达式x=y+5大于0则z=x。
下述语句是非法的:
if((x=y+5;)>0) z=x;
因为x=y+5;是语句,不能出现在表达式中。
-
C语言赋值运算符和赋值表达式
2021-08-04 16:09:48C语言赋值运算符和赋值表达式赋值运算符类型转换复合的赋值运算符 赋值运算符 简单赋值运算符和表达式:简单赋值运算符记为“=”。由“= ”连接的式子称为赋值表达式。其一般形式为: 变量=表达式 例如: x=a+b w=...赋值运算符
简单赋值运算符和表达式:简单赋值运算符记为“=”。由“= ”连接的式子称为赋值表达式。其一般形式为:
变量=表达式
例如:
x=a+b w=sin(a)+sin(b) y=i+++--j
赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。
因此a=b=c=5
可理解为
a=(b=(c=5))
在其它高级语言中,赋值构成了一个语句,称为赋值语句。 而在 C 中,把“=”定义为运算符,从而组成赋值表达式。 凡是表达式可以出现的地方均可出现赋值表达式。
例如,
式子:x=(a=5)+(b=8)
是合法的。它的意义是把 5 赋予 a,8 赋予 b,再把 a,b 相加,和赋予 x,故 x 应等于 13。
在C语言中也可以组成赋值语句,按照C语言规定,任何表达式在其未尾加上分号就构成为语句。
因此如x=8;a=b=c=5;
都是赋值语句。类型转换
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边
的类型换成左边的类型。具体规定如下:- 实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。
- 整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为 0)。
- 字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的 ASCII码值放到整型量的低八位中,高八位为 0。整型赋予字符型,只把低八位赋予字符量。
main(){ int a,b=322; float x,y=8.88; char c1='k',c2; a=y; /*a=8.88*/ x=b; /*x=322*/ a=c1; /*a='K'*/ c2=b; /*322*/ printf("%d,%f,%d,%c",a,x,a,c2); }
本例表明了上述赋值运算中类型转换的规则。a 为整型,赋予实型量 y 值 8.88 后只取整数 8。x 为实型,赋予整型量 b 值 322, 后增加了小数部分。
说明%c c2为何是字符B
%c格式对应的是单个字符。
字符型量 c1 赋予 a 变为整型,整型量 b 赋予 c2 后取其低八位成为字符型(b 的低八位为 01000010,即十进制 66,按 ASCII码对应于字符 B)。
复合的赋值运算符
在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。
构成复合赋值表达式的一般形式为:变量 双目运算符=表达式
它等效于
变量=变量 运算符 表达式
例如:
a+=5 等价于 a=a+5 x*=y+7 等价于 x=x*(y+7) r%=p 等价于 r=r%p
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。
-
C语言中的运算规则
2021-05-21 06:43:49C语言中的运算规则3、“异或”运算符(^)他的规则是:若参加运算的两个二进制位值相同则为0,否则为1即0∧0=0,0∧1=1,1∧0=1, 1∧1=0例: 00111001∧ 0010101000010011c语言源代码:#includemain(){int a=071;...C语言中的运算规则
3、“异或”运算符(^)
他的规则是:若参加运算的两个二进制位值相同则为0,否则为1
即0∧0=0,0∧1=1,1∧0=1, 1∧1=0
例: 00111001
∧ 00101010
00010011
c语言源代码:
#include
main()
{
int a=071;
int b = 052;
printf("%d",a^b);
}
应用:
(1)使特定位翻转
设有数01111010(2),想使其低4位翻转,即1变0,0变1.可以将其与00001111(2)进行“异或”运算,
即:
01111010
^00001111
01110101
运算结果的低4位正好是原数低4位的翻转。可见,要使哪几位翻转就将与其进行∧运算的该几位置为1即可。
(2)与0相“异或”,保留原值
例如:012^00=012
00001010
^00000000
00001010
因为原数中的1与0进行异或运算得1,0^0得0,故保留原数。
(3) 交换两个值,不用临时变量
例如:a=3,即11(2);b=4,即100(2)。
想将a和b的值互换,可以用以下赋值语句实现:
a=a∧b;
b=b∧a;
a=a∧b;
a=011(2)
(∧)b=100(2)
a=111(2)(a∧b的结果,a已变成7)
(∧)b=100(2)
b=011(2)(b∧a的结果,b已变成3)
(∧)a=111(2)
a=100(2)(a∧b的结果,a已变成4)
等效于以下两步:
① 执行前两个赋值语句:“a=a∧b;”和“b=b∧a;”相当于b=b∧(a∧b)。
② 再执行第三个赋值语句: a=a∧b。由于a的值等于(a∧b),b的值等于(b∧a∧b),因此,相当于a=a∧b∧b∧a∧b,即a的值等于a∧a∧b∧b∧b,等于b。
c语言源代码:
#include
main()
{
int a=3;
int b = 4;
a=a^b;
b=b^a;
a=a^b;
printf("a=%d b=%d",a,b);
}
4、“取反”运算符(~)
他是一元运算符,用于求整数的二进制反码,即分别将操作数各二进制位上的1变为0,0变为1。
例如:~77(8)
源代码:
#include
main()
{
int a=077;
printf("%d",~a);
}
5、左移运算符(<
左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。
例如:将a的二进制数左移2位,右边空出的位补0,左边溢出的位舍弃。若a=15,即00001111(2),左移2位得00111100(2)。
源代码:
#include
main()
{
int a=15;
printf("%d",a<<2);
}
左移1位相当于该数乘以2,左移2位相当于该数乘以2*2=4,15<<2=60,即乘了4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。
假设以一个字节(8位)存一个整数,若a为无符号整型变量,则a=64时,左移一位时溢出的是0,而左移2位时,溢出的高位中包含1。
6、右移运算符(>>)
右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负
值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分
用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。注
意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移
入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的
系统移入1。移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。
例: a的值是八进制数113755:
a:1001011111101101 (用二进制形式表示)
a>>1: 0100101111110110 (逻辑右移时)
a>>1: 1100101111110110 (算术右移时)
在有些系统中,a>>1得八进制数045766,而在另一些系统上可能得到的是145766。Turbo C和其他一些C编译采用的是算术右移,即对有符号数右移时,如果符号位原来为1,左面移入高位的是1。
源代码:
#include
main()
{
int a=0113755;
printf("%d",a>>1);
}
7、位运算赋值运算符
位运算符与赋值运算符可以组成复合赋值运算符。
例如: &=, |=, >>=, <<=, ∧=
例: a & = b相当于 a = a & b
a << =2相当于a = a << 2
-
c语言中变量的赋值
2021-07-16 22:02:58c语言的变量 临时变量;打印没有名字的变量时会产生一种临时变量(临时空间); eg: double强转为int时会产生一个临时变量来存储double的整数部分;printf(“%d”,100+10);100+10的和会存储在一个临时变量中将其打印... -
C语言赋值运算符考点
2021-05-23 10:47:42C语言赋值运算符考点C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。下面,小编为大家搜索整理了C语言赋值运算符考点,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生... -
C语言笔记-连续赋值
2020-10-26 23:29:52C语言中连续赋值问题 C语言中可以进行连续赋值,如a=b=c=1,“=”运算符是从右至左结合,意味着先将1赋给c,再将c赋给b,再将b赋给a,此时 a,b,c都是1,即完成了连续赋值。但是定义时连续赋值违反了C语言中先定义后使用原则... -
C语言赋值指代简介
2021-05-19 19:15:42所以创造编码语言的人很有远见地创建了定义和赋值指代的规则。 3、那我们就来讲讲这个规则。大家有没有学过数学方程?如果学过的话,那么学这个规则就会简单许多。方程中,假如有一个未知数,为了方便起见,会把这个... -
C语言赋值表达式
2021-05-22 17:14:02C语言赋值表达式1、 赋值运算符1:赋值运算符赋值运算符的符号位“=”,由赋值运算符组成的表达式称为赋值表达式。功能:先求出右边表达式的值,然后把此值赋给左边的变量。格式: 变量名=表达式说明:在程序中可以... -
第2讲 C语言 赋值语句
2019-05-19 13:34:43第2讲 赋值语句 一、赋值语句 1、一般赋值语句 语法:〈变量名〉=〈表达式〉 例如:x=b*b-4*a*c BookPrice=128/5.6 功能:将右边的表达式的值赋给左边的变量。 2、特殊赋值语句 语法:〈expr1〉〈op〉=... -
C语言·赋值运算符
2020-03-21 15:29:17注意:赋值时左右数据类型要一致,否则系统会默认进行类型转换,因而造成意想不到的错误。 (1)实型数据赋给整型变量时,舍去小数。 (2)整型数据赋予实型变量时,数值不变。但以浮点形式存放于内存。 (3)double型赋给... -
C语言赋值过程中的类型转换
2021-07-20 19:17:36如果赋值运算符两侧的类型不一致,但都是算术类型的,在赋值时要进行类型转换。 类型转换是由系统自动进行的,转换规则如下: (1)将浮点型数据赋给整型变量时,先对浮点数取整,也即舍弃小数部分,然后赋予整型变量... -
C语言赋值运算符与赋值表达式
2021-05-18 12:00:35C语言赋值运算符与赋值表达式我们都知道基本的赋值运算符是"=",他的优先级别低于其他的运算符,所以对该运算符往往最后读取。下面和大家分享一下C语言赋值运算符与赋值表达式,一起来看看吧!一、赋值运算符与赋值... -
C语言赋值运算符详解
2021-05-18 12:06:34C语言赋值运算符详解C语言赋值运算符是什么呢,简单赋值运算符记为“=”,由“= ”连接的式子称为赋值表达式。下面小编为你介绍C语言赋值运算符吧!其一般形式为:变量=表达式例如:x=a+bw=sin(a)+sin(b)y=i+++--j... -
C语言整数赋值流程
2021-03-03 20:21:24C语言整数赋值流程(溢出原理) 首先,正数的补码与原码相同。 计算机内数值的储存和计算方式是补码。 当我们打出a=255时,如果a是个整数变量,则有四个字节,即32位,所以255原码和补码是00000000 00000000 ... -
C语言中的赋值表达式
2020-07-11 15:26:43一:等号左边只能是单个变量。 二:右边可以放到左边去。 a=b=1; 这 -
c语言赋值语句
2016-03-19 12:19:00(11)下列语句中符合 C 语言语法的赋值语句是______。 A)a=7+b+c=a+7B)a=a+7 C)a=7+b,b++,a+7; D)a=7+b,c=a+7; 知识点:C 表达式类型 评析:本题的考查点是赋值语句。 C 语言中,赋值语句具有其他高级... -
C语言复合赋值运算符
2021-05-21 04:44:34C语言复合赋值运算符在C语言的赋值中有一种特殊的赋值运算符,就是复合赋值运算符。下面是关于C语言复合赋值运算符的'相关介绍!复合赋值运算符就是在赋值符“=”之前加上其它二目运算符可构成。比如大家可能最常... -
C语言赋值语句详解。
2021-01-25 16:33:13转自:http://www.pinlue.com/article/2020/06/0213/1810670913359.html -
C语言基础丨运算符之赋值运算符(五)
2021-01-28 19:11:01赋值操作是程序设计中最常用的操作之一,C 语言共提供了 11 个赋值运算符,均为二元运算符,其中仅有一个为基本赋值运算符 =,其余 10 个均是复合赋值运算符,即: (1)简单赋值运算符" = " 用法:变量标识符 = ... -
42声明式UI 的编程思维_c语言字符变量赋值规则
2020-11-10 05:52:09声明式UI 的编程思维 如果你之前是 Android 或 iOS 开发你最熟悉的应该是命令式的 UI 开发但是 Flutter 的 UI 开发是声明式的所以需要你的编程思维 从命令式 声明式转变 从 命令式UI 到 声明式UI 假设要实现个界 在 ... -
C语言二级考试易错题及答案.pdf
2021-05-22 00:53:18一:选择题3-2.int x 2,y 3;...下列语句中,不符合C语言语法的赋值语句是 ( )。A) a 7+b+c a+7; B) a 7+b++ a+7; C) a 7+b,b++,a+7; D) a 7 b,c a+7;注:a 7+b,b++,a+7;实为逗号语句,非赋值语句... -
C语言字符串赋值的方法
2020-09-13 10:57:40C语言中,常见的3种字符串赋值有如下: 1、通过字符数组直接初始化 int main() { char str[10] = "China";//还可以写成char str[10] ;str[10] = "China"; printf("str = %s", &str); return 0; } 但是,直接... -
C语言算术、赋值、关系、逻辑运算详细剖析---
2021-05-19 02:20:41C语言中大小写字母是两个不同的字符。¨关键字:标识符的一个特殊的集合。其中的标识符在C语言中有预先定义好的特殊意义。不能用于其他任何目的。¨C语言的关键字共32个:auto break case char const continue de... -
C语言_指针变量的赋值与运算,很详细
2021-05-20 04:38:20指针变量的赋值指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,... -
c语言 赋值过程中的类型转换
2018-06-24 10:56:05如果赋值运算符两侧的类型一样,则直接进行赋值,当赋值运算符两侧的类型不一样时,在赋值时要进行类型转换,转换是由系统自动进行进行的,规则如下:(一)把浮点型数据赋值给整型变量时,要先进行取整操作(去掉... -
【C语言】变量及赋值
2021-06-13 19:56:05含代码示例,介绍了C语言的变量及赋值 -
C语言中不同类型的数据转换规则
2021-05-22 16:42:48自动类型转换在C语言中,自动类型转换遵循以下规则:①若参与运算量的类型不同,则先转换成同一类型,然后进行运算②转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型... -
c语言中char的赋值
2019-10-23 18:11:23char类型和其它类型一样在定义和初始化上可以先声明(定义),再赋值(初始化)。使用char来定义一个字符,通过单引号括起来的单个字符赋值给它。 2、当然你也可以在定义变量的时候就初始化(也就是在声明的时候赋值...