栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初识操作符-c语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初识操作符-c语言

算数操作符:+ - * / %

int main()
{
       //除号的两端都是整数,执行的为整数除法;有一端或两端为小数,执行的是小数除法
       int a = 9 / 2;
       printf("%dn", a);//4
       float b = 9 / 2;
       printf("%fn", b);//4.0
       float c = 9 / 2.0;
       printf("%fn",c);//4.5
       int d = 9 % 2;//% -取模,得到的是余数
       printf("%d", d);//1
       return 0;
}

移位操作符:

>>左移操作符-移动的是二进制位

<<右移操作符

int main()
{
       int a = 2;
       int b = a << 1;
       printf("%dn", b);//4
       return 0;
}

位操作符:

&:按位与

|:按位或

^:按位异或

赋值操作符:= += -= *= /= &= ^= |= >>= <<=

int main()
{
       int a = 2;
       a = a + 5;
       a += 5;
       a = 6;
       a = a - 3;
       a -= 3;
       a = a % 3;
       a %= 3;
       printf("%d", a);
       return 0;
}

a+b: +有2个操作数,双面操作符

单目操作符:只有一个操作数

!:逻辑反操作

-:负值

+:正值

&:取地址

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

~:对一个数的二进制按位取反

--:前置、后置--

++:前置、后置++

(类型):强制类型转换

int main()
{
       //0表示假,非0就是真
       int a = 10;
       printf("%dn", !a);//0
       return 0;
}
int main()
{
       //sizeof是一个操作符
       //不是函数
       //计算类型或者变量的大小的
       int a = 10;
       printf("%dn", sizeof a);
       printf("%dn",sizeof(int));
       return 0;
}
int main()
{
       //10
       int arr[10] = { 0 };
       printf("%dn", sizeof(arr));//40 计算的是数组的总大小,单位是字节
       printf("%dn", sizeof(arr[0]));//4
       int sz = sizeof(arr) / sizeof(arr[0]);//计算一个数组的元素个数
       printf("%dn", sz);//10
       return 0;
}

~按(二进制)位取反  把所有二进制中数字,1变成0,0变成1

整数在内存存储的是补码

一个整数的二进制表示有3种 

原码 

补码 

反码

负数的计算:

-1:
100000000000000000000000000000001(原码32位)
111111111111111111111111111111110(反码)
111111111111111111111111111111111(补码)

整数的计算:原码,反码,补码相同

整数a

0

二进制:

00000000000000000000000000000000

11111111111111111111111111111111 ~a (补码)

#define _CRT_SECURE_NO_WARNINGS
#include 
int main()
{
       int a = 0;
       printf("%dn", ~a);//-1
    //~安位取反
       return 0;
}

++ :前置、后置++

int main()
{
       int a = 10;
       int b = ++a;//前置++   先++,后使用
       printf("%dn", b);//11
       printf("%dn", a);//11
       int c = 10;
       int d = c++;//后置++   先使用,后++
       printf("%dn", c);//11
       printf("%dn", d);//10
       return 0;
}

(类型):强制类型转换

int main()
{
       //强制类型转换
       int a = (int)3.14;
       printf("%dn", a);
       return 0;
}

关系操作符

>

>=

<

<=

!= 用于测试“不相等”

==用于测试“相等”

逻辑操作符

&& 逻辑与

||     逻辑或

int main()
{
       int a = 3;
       int b = 5;
       int c = a && b;
       printf("%dn", c);//1 真
       //if (a && b)
       //{
       //}
       int d = 0;
       int e = a && d;
       printf("%dn", e);//0假
       int f = a || d;
       printf("%dn", f);//1真
       int h = 0;
       int g = h && d;
       printf("%dn", g);//0假
       return 0;
}

条件操作符(三目操作符)

exp1?exp2:exp3

(exp1,exp2,exp3为三个表达式(操作数))

exp1如果成立,exp2计算,整个表达式的结果是:exp2的结果

exp1如果不成立,exp3计算,整个表达式的结果是:exp3的结果

int main()
{
       int a = 0;
       int b = 3;
       int max = 0;
       
       max=a > b ? a : b;
       printf("%dn", max);
       return 0;
}

逗号表达式:逗号隔开的一串表达式

exp1,exp2,exp3,...expN

int main()
{
       //(2, 4 + 5, 6);
       int a = 0;
       int b = 3;
       int c = 5;
              //a=5        c=1        b=3
       int d = (a = b + 2, c = a - 4, b = c + 2);  //d=3
       //逗号表达式,是从左向右依次计算
       //整个表达式的结果是最后一个表达式的结果
       printf("%dn", d);//3
       return 0;
}

下标引用、函数调用和结构成员

() [   ]   .   ->

下标引用操作符

int main()
{
       int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
       printf("%d", arr[5]);//[]下标引用操作符
       return 0;
}

函数调用操作符

int main()
{
       //调用函数的时候,函数名后面的()就是函数调用操作符
       printf("hellon");
       printf("%d", 100);
       return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892920.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号