c语言中逻辑表达式a=b或a lt c,对C语言中操作符的认知与理解

操作符:

一,算数操作符

+ - * / %

1.浮点数不能用于取模运算

2. 取模操作的两个操作数必须是整数,即返回整除之后的余数

3./(除法)运算只要有浮点数参与,就是浮点数除法

4.除法运算除数不能为0,也不能用0去进行取模操作

5.%2就等于/2,也可以当做取一个数的最低位比特数

二,移位操作符

语言

方法

9136

o44qAU3GrX

4MW4V

1598

2009.08.04 19-26-56

>> 右移操作符

<< 左移操作符

1.i>>n,即i右移n位,相当于i除以二的n次方

2.i<

3.计算机的运算操作在计算机的cpu中,变量是在内存开辟空间进行存储数 据,并且以这个数的补码存储

4.左移操作时,左边抛弃右边补0即可

5.右移操作时,分为逻辑右移和算数右移。

6.逻辑右移即无符号数操作,右边抛弃,左边补0;

7.算数右移,右边抛弃,左边补算数位,即正补0负补1。

8.不要一开始就左移右移负数

三,位操作符

&(按位与) | (按位或) ^(按位异或)

1.按位,即按比特位一一对应

2,使用位操作符时必须是两个同等类型的整数

3,任何数异或0结果为其自身

4,任何数或1结果为其自身

5,任何数与1结果为其自身

6,任何数与0结果为0

四,赋值操作符

=

可以用于变量初始化,或者给变量重新赋值操作,比较容易操作。

五,复合赋值符

+= … -=… *=… /=… %= …>>=…>>=…&=…|=…^=…

这些运算符可以写成复合的效果

六,单目操作符

!(逻辑反操作) -(负值) +(正直)·&(取地址)

sizeof(操作符的类型长度,以字节为单位)

~(对一个数的二进制进行按位取反)

++(前置++ 后置++)

*(间接访问操作符,解引用操作符)

(类型)强制类型转换

除0以外,其余数取逻辑反即为0

~按位取反 即对应二进制数比特位逐个取反

变量的三个构成部分:空间+内容+地址

sizeof()不是函数,是操作符。

强制类型转换只是改变我们对这个数的看待方式

指针是一个地址,*p=&a,p里面存的是a的地址,*p就是a

变量的空间称为变量的左值,变量的内容称为变量的右值。

没有初始化的指针称为野指针(悬垂指针)

‘NULL’ ,’ \0’,‘0’,都是0;

七.逻辑操作符

&&(逻辑与)

||(逻辑或)

1.连接两个表达式

2.&&,左右两个均为真才为真

3.||,有一个表达式为真即为真

4 多个表达式逻辑与,从左往右只要有一个为假,即后面不再执行

#include

#include

int main(){

int i = 0, a = 0, b = 2, c = 3, d = 4;

i = a++&&++b&&d++&&c++; /*l逻辑与操作符,a为0即为假, 后面表达式不再执行,a先判断后自增一*/

printf("i=%d\n,a=%d\n,b=%d\n,c=%d\n,d=%d\n", i, a, b, c, d);

system("pause");

}

c语言中逻辑表达式a=b或a lt c,对C语言中操作符的认知与理解_第1张图片

5,多个表达式逻辑或,从左往右只要有一个为真,即后面不再执行

#include

#include

int main(){

int i = 0, a = 0, b = 2, c = 3, d = 4;

i = a++||++b||d++||c++; /*l逻辑或操作符,a为0即为假,a先判断后自 增一, 接着++b为真,b是先自增后判断,后面表达式不再执行*/

printf("i=%d\n a=%d\n b=%d\n c=%d\n d=%d\n", i, a, b, c, d);

system("pause");

}

c语言中逻辑表达式a=b或a lt c,对C语言中操作符的认知与理解_第2张图片

八,条件操作符

exp1 ? exp2:exp3

1,exp1表达式成立则exp2,不成立则exp3;

#include

#include

int test(int a1, int b1)

{

return(a1 > b1 ? a1 : b1); /*(条件操作符)三目表达式求两个数中较大值*/

}

int main(){

int a = 1, b = 2;

int n = test(a, b);

printf("%d", n);

system("pause");

}

c语言中逻辑表达式a=b或a lt c,对C语言中操作符的认知与理解_第3张图片

九,逗号表达式

(exp1,exp2,>>>>>>,expn)

1.括号内表达式均会执行,但是以最后一个条件值为准。

#include

#include

int main(){

int a = 1, b = 2;

int i = (a + b, a*a, b*b, 1000); /*逗号表达式*/

printf("%d", i);

system("pause");

}

c语言中逻辑表达式a=b或a lt c,对C语言中操作符的认知与理解_第4张图片

十,下标引用,函数调用

1.下标引用操作符

操作数:一个数组名+一个索引值

#include

#include

int main(){

int arry[3] = { 1, 2, 3 };

arry[1] = 12; /*[]下标引用操作*/

printf("%d", arry[1]);

system("pause");

}

2.( )函数调用操作符

接收一个或者多个操作数:第一个操作数是函数名,剩余操作数就是传递给函数的参数。

#include

#include

int test(int value1, int value2)

{

printf("%d+%d=%d", value1, value2, value1 + value2);

}

int main(){

int a = 1, b = 2;

test(a, b); /*()函数调用操作符 :函数名test, 还有传递给函数的两个参数啊a,b*/

system("pause");

}

你可能感兴趣的:(c语言中逻辑表达式a=b或a,lt,c)