您的位置:

c语言的赋值表达式语句规则,c语言中正确的赋值表达式

本文目录一览:

c语言中赋值的正确语法是什么?

对于如下说明,语法和语义都正确的赋值是:C、s=a[1];

A、语法上正确(可能引起编译警告)。若非静态变量或全局变量,否则s没有被初始化,是随机值,*s的值无法确定,即没有确定的语义;若是静态变量或全局变量,s被初始化为0,对地址0的解引用操作没有确定的语义。

B、错误。理由同上,对随机地址的操作不具有确定的语义(s[0]等价于*s)。另外对随机地址单元的写操作(赋值)引起的后果不可预料。

C、正确,将a[1]的地址赋值给指针s。

D、语法错误,c(int)和a(const int*)的类型不匹配,会引起编译错误。

扩展资料:

将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。

例如,给变量a赋值一个数为12,则格式为:a = 12 [注意:变量(即a)只能是一字母,而赋予的值可以是一个式子,当它是式子时,a的值就是这个式子的结果。

在C语言中11种赋值运算符的具体含义,用法?

1.=

赋值运算符

变量=表达式

如:a=3;将a的值赋为3

2./=

除后赋值

变量/=表达式

如:a/=3;即a=a/3

3.*=

乘后赋值

变量*=表达式

如:a*=3;即a=a*3

4.%=

取模后赋值

变量%=表达式

如:a%=3;即a=a%3

5.+=

加后赋值

变量+=表达式

如:a+=3;即a=a+3

6.-=

减后赋值

变量-=表达式

如:a-=3;即a=a-3

7.=

左移后赋值

变量=表达式

左移就是将《左边的数的二进制各位全部左移若干位,《右边的数指定移动位数,高位丢弃,低位补0,

移几位就相当于乘以2的几次方

8.=

右移后赋值

变量=表达式

右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。注意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的

系统移入1。移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。

9.=

按位与后赋值

变量=表达式

按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其实与逻辑上“与”的运算规则一致。逻辑上的“与”,要求运算数全真,结果才为真。若,A=true,B=true,则A∩B=true

10.

^=

按位异或后赋值

变量^=表达式

参与运算的两个量按照对应的位进行异或运算,且

0^0→0,

0^1→1,

1^0→1,

1^1→0

此外,一个数与0异或仍保持不变,即a^0=a

一个数与自己异或结果为0,即a^a=0

11.|=

按位或后赋值

变量|=表达式

参与运算的两个量按照对应位进行或运算,且

0|0→0,

0|1→1,

1|0→1,

1|1→1

这些位运算都是与二进制码有关的,所以多弄弄也就会了

C语言赋值运算符与赋值表达式

我们都知道基本的赋值运算符是"=",他的优先级别低于其他的运算符,所以对该运算符往往最后读取。下面和大家分享一下C语言赋值运算符与赋值表达式,一起来看看吧!

C语言赋值运算符与赋值表达式1

一、赋值运算符与赋值表达式

赋值符号“=“就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式。一般形式为:

变量名=表达式

在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。

例:a=12;此表达式读作“将10的值赋值给变量a”。

说明:

a、如果赋值号两边的运算对象类型不一致,系统会自动进行类型转换,转换的规则:将赋值号右边表达式的值的类型转换成赋值号左边变量的类型,

例:inty=3.5;在变量y中最终存储的是整数3。

b、可以将复制表达式的.值再赋值给变量,形成连续赋值。

例如:x=y=25是一个连续赋值表达式,x=y=25等价于x=(y=25),所以表达式x=y=25最终的值为25。

二、复合的赋值运算符

在赋值运算符之前加上其他运算符可以构成复合赋值运算符。其中与算术运算有关的复合运算符是:+=,—=,x=,/=,%=。

两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。

如求表达a+=a—=axa的值,其中a的初值为12。

步骤:

(1)先进行“a—=axa“运算,相当于a=a—axa=12—144=—132。

(2)再进行“a+=—132“运算,相当于a=a+(—132)=—132—132=—264。

C语言赋值运算符与赋值表达式2

其一般形式为:

变量=表达式

例如:

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。整型赋予字符型,只把低八位赋予字符量。

【例3-18】

#include

int main(void){

int a,b=322;

float x,y=8.88;

char c1=k,c2;

a=y;

x=b;

a=c1;

c2=b;

printf("%d,%f,%d,%c",a,x,a,c2);

return 0;

}

本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8.88后只取整数8。x为实型,赋予整型量b值322, 后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。

注意:经大家反馈,笔者发现上面的例子容易造成误解,现已对代码进行更改,更改时间 2014-07-04 09:12:45,看评论的读者请注意评论时间,不要混淆。

更改后的代码如下:

#include

int main(void){

int a,c,b=322;

float x,y=8.88;

char c1=k,c2;

a=y;

x=b;

c=c1;

c2=b;

printf("a=%d, x=%f, c=%d, c2=%c ", a, x, c, c2);

return 0;

}

输出结果:

a=8, x=322.000000, c=107, c2=B

复合的赋值运算符

在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=、-=、*=、/=、%=、=、=、=、^=、|=。

构成复合赋值表达式的一般形式为:

变量 双目运算符=表达式

它等效于

变量=变量 运算符 表达式

例如:

a+=5 等价于 a=a+5

x*=y+7 等价于 x=x*(y+7)

r%=p 等价于 r=r%p

C语言中的赋值语句

你都学傻了!!!!!

赋值就是赋值什么表示成功不成功啊;

你看看这个吧

c=(x=z);

c==(x=z);

第一个是赋值表达式,赋值表达式是不产生逻辑值的,也就是什么都没有

后一个才是关系表达式,是产生逻辑值的

自己想也得根据实际啊,要从实际出发,这是历史得教训

C语言中赋值语句的语法是怎样的

赋值的语法规则就是:

数据类型 变量名 = 表达式

表达式可以理解为一个值或一个计算公式就行,表达式加一个英文符号分号就是语句。

例如:

我们今天要用到的,我买了几斤苹果。

就可以这样写:

方式一:

Int apple_count = 0; //告诉计算机apple_count是用来存买苹果的斤数的,默认为0;

方式二:

Int apple_count; //告诉计算机apple_count是用来存买苹果的斤数的,以后再告诉计算机它等于多少,现在不知道;

扩展资料

1、C语言中,赋值运算的操作是有方向的,即将右侧表达式的值(也称为右值)赋值左侧的变量,只能是标识一个特定存储单元的变量名。

2、由于变量名只能出现在赋值运算符的左边,因此它也被称为左值;由于常量只能出现在赋值运算符的右边,因此它也被称为右值。左值可以用作右值,但右值不能用作左值。