龙空技术网

C语言:运算符和判断

尘世喧嚣易相随 155

前言:

今天大家对“c语言数据运算符”大体比较关切,我们都需要知道一些“c语言数据运算符”的相关知识。那么小编同时在网上网罗了一些对于“c语言数据运算符””的相关知识,希望各位老铁们能喜欢,朋友们快快来学习一下吧!

C语言:运算符和判断

目录

  算术运算符

  关系运算符

  逻辑运算符

  位运算符

  赋值运算符

  其他运算符

判断语句

C语言提供了以下运算法

算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符算术运算符

+、减 -、乘 *、除 /、求余 % 、自加 ++、自减 --

# include <stdio.h>int main() {    int a = 4;  // 声明定义和初始化    int b = 2;  // 声明定义和初始化    int c;      // 声明定义    c = a + b;  // 加 6    c = a - b;  // 减 2    c = a * b;  // 乘 8    c = a / b;  // 除 2    c = a % b;  // 求余 0}

a++ 先赋值再自加

++a 先自加再赋值

# include <stdio.h>int main() {    int c;      // 声明定义    int a = 4;  // 声明定义和初始化    c = a++;  // 自加    printf("先赋值再运算");    printf("%d\n", c);  // 4    printf("%d\n", a);  // 5    a = 4;  // 声明定义和初始化    c = a--;  // 自减    printf("%d\n", c);  // 4    printf("%d\n", a);  // 3    printf("先运算再赋值");    a = 4;  // 声明定义和初始化    c = ++a;  // 自加    printf("%d\n", c);  // 5    printf("%d\n", a);  // 5    a = 4;  // 声明定义和初始化    c = --a;  // 自减    printf("%d\n", c);  // 3    printf("%d\n", a);  // 3}
关系运算符

判断相等 ==、判断不等 !=、大于 >、小于<、大于等于 >=、小于等于 <=

注意:C语言中没有这种级联写法 a<b<c ,正确的写法应为 a<b && b<c

逻辑运算符与 &&:同真为真或 || :有一个真,为真非 !:转换,真变假,假变真位运算符

位运算符作用于位,并逐位执行操作。

按位与 &按位或 |按位异或 ^取反 ~二进制左移运算符 <<二进制右移运算符 >>

C语言中移位运算比乘除法效率更高,右移是除法,左移是乘法,

移1位=21=2移2位=22=4移3位=23=8移4位=24=16

a = a << 3;     // a=a*8; b = b >> 3;     // ab=b/8; a = a * 9;    // 分析a*9可以拆分成a*(8+1)即a*8+a*1, 因此可以改为: a=(a<<3)+a a = a * 7;    //分析a*7可以拆分成a*(8-1)即a*8-a*1, 因此可以改为: a=(a<<3)-a

注意:

只有整型数据才能用移位替代乘除法,如:char、short、int、long、unsigned char、unsigned short、unsigned int、unsigned long。(double、float、bool、long double则不可以进行移位操作)

有符号数据类型移位需要注意符号位:

对负数进行左移:符号位始终为1,其他位左移。对正数进行左移:所有位左移,即 <<,如果超出int能表达的返回可能会变成负数。对正数进行右移:所有位右移,即 >>赋值运算符

简单赋值 = ;a=10

+=、-=、*=、/=、%=等等,a+=1等于a=a+1

其他运算符

sizeof()

返回变量的大小

sizeof(a) 将返回 4,其中 a 是整数

&

返回变量的地址

&a; 将给出变量的实际地址

*

指向一个变量

*a; 将指向一个变量

? :

条件表达式

如果条件为真 ? 则值为 X : 否则值为 Y

判断语句

if 语句

if(布尔值为真) {   /* 如果布尔表达式为真将执行的语句 */}

if ... else 语句

if(布尔值为真) {   /* 如果布尔表达式为真将执行的语句 */}else {   /* 如果布尔表达式为假将执行的语句 */}

if...else if...else 语句

if(boolean_expression 1) {   /* 当布尔表达式 1 为真时执行 */}else if( boolean_expression 2) {   /* 当布尔表达式 2 为真时执行 */}else if( boolean_expression 3) {   /* 当布尔表达式 3 为真时执行 */}else  {   /* 当上面条件都不为真时执行 */}

switch 语句

#include <stdio.h>int main (){    /* 局部变量定义 */    char grade = 'B';    switch(grade)    {        case 'A' :            printf("成绩为A \n" );            break;        case 'B' :            printf("成绩为B \n" );            break;        case 'C' :            printf("成绩为C \n" );            break;        case 'D' :            printf("成绩为D \n" );            break;        case 'F' :            printf("成绩为E \n" );            break;        default :            printf("不及格 \n" );    }    return 0;}

标签: #c语言数据运算符