c语言赋值是什么?

Python010

c语言赋值是什么?,第1张

C语言中的结构体变量可以用另一个变量对其进行赋值或初始化。

简单结构体(不包含指针成员)直接赋值没有问题。但是稍微复杂一点的结构体里面会有指针成员,那么以上的浅拷贝则会有问题。

赋值会直接将结构体的指针变量被赋值,赋值之前其所指向的内存单元丢失,赋值之后若该指针指向的内存单元被其它指针释放掉,那么继续使用该成员指针的话则有可能导致内存泄漏。

概述:

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。

其一般形式为:变量=表达式。

由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式变量=(变量=表达式);是成立的,从而形成嵌套的情形。

赋值语句:

将确定的数值赋给变量的语句叫做赋值语句。

各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。

所赋“值”可以是数字,也可以是字符串和表达式。

注意很多语言都使用“等于号”(即“=”)来作为赋值号,所以可能和和平时的理解不同,在使用的时候应予以注意。

1.六个变量=表达式的赋值:

=是赋值运算符,/=是除后赋值,*=是乘后赋值,

%=是取模后赋值,+=是加后赋值,-= 是减后赋值,

2.<<=是左移后赋值,变量<<=表达式 左移就是将左边的数的二进制各位全部左移若干位,右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方。

3.>>=是右移后,变量>>=表达式,右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。

对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)

对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。

如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统,系统移入0或系统移入1。

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

4.&= 按位与后,变量&=表达式,按位与是指:参加运算的两个数据,按二进制位进行“与”运算。

如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。

5.^= 按位异或后赋值,变量^=表达式,参与运算的两个量按照对应的位进行异或运算,且

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。

扩展资料:

1.赋值表达式的功能是计算表达式的值再赋予左边的变量。

赋值运算符具有右结合性,因此a=b=c=5可理解为a=(b=(c=5))。

2.在其它高级语言中赋值构成了一个语句,称为赋值语句

而在C语言中,

把“=”定义为运算符,从而组成赋值表达式。

3.凡是表达式可以出现的地方均可出现赋值表达式。

例如:式子x=(a=5)+(b=8)是合法的。它的意义是把5赋予a,8赋予b,再把a,b相加,和赋予x,故x应等于13。

4.在C语言中也可以组成赋值语句。

按照C语言规定,任何表达式在其未尾加上分号就构成为语句。