C语言:操作符详解(1)

1.算数操作符:

“+” “-” “*” “/” “%”

注意点:

%号 只能用于整数

2.除数不能为0

/号,如果两数都是整数,结果为整数;如果有一个数为小数,结果为小数。

整型提升:凡是针对char,short型的数学运算,此时都会隐式转换为 int 型

(因为CPU运算一般以整型为基本单位)

算数转换:

long double

double 8个

float 4个

unsigned long int

long int 4个

long long 8个

unsigned int

int 4个

short 2个字节

如果某个操作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。

警告: 但是算术转换要合理,要不然会有一些潜在的问题。

2.移位操作符

“<<” 左移操作符 左移相当于乘以2

">>"右移操作符 右移相当于除以2

左移操作符:左边抛弃,右边补0

右移操作符:1. 逻辑移位 :左边用0填充,右边丢弃

算术移位 :左边用原该值的符号位填充,右边丢弃。

符号位就是最高位,代表这个十进制数的正负:

最高位如果是0,就是正数,

最高位如果是1,就是负数,

对于移位运算符,不要移动负数位,这个标准是未定义的
例如:int num=10;
num>>-1;

3.位操作符(都是二进制位来说,双目操作符)

& 按位与 两个操作数都为1,结果才是1

| 按位或 两个操作数都为0,结果才是0

^ 按位异或 两个操作数相同,结果是0,两个操作数不相同,结果是1

~ 按位取反 按位取相反数 0变成1,1变成0

4.赋值操作符(双目操作符)

复制操作符最常见的就是“=”,赋值操作符可以连续使用,连续赋值

复合赋值操作符:

+= *= /= %= >>= <<= &= |= ^=

5.单目操作符

! 逻辑反操作

负值

正值

& 取地址

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

(如果要计算数组的长度,则数组在哪里定义,在哪里计算)

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

“–” 前置、后置–

“++” 前置、后置++

间接访问操作符解引用操作符)

类型) 强制类型转换

注意:* 间接访问操作,这个会在指针里面广泛用到。

++i,–i 先运算,再使用

i++,i– 先使用,再运算

6.关系操作符

=

<

<=

!= 用于测试“不相等”

== 用于测试“相等”

7.逻辑操作符

&& 逻辑与 两个条件同时满足

|| 逻辑或 两个条件至少满足一个

特别:

短路性:&&左侧表达式为假时,右侧表达式不会进行求值

||左侧表达式为真时, 右侧表达式不会进行求值

8.条件操作符(C语言中唯一 一个三目运算符)

exp1 ? exp2 : exp3

exp1 为真 结果为exp2 为假 结果为exp2

9.逗号表达式

exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式。 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

练习:

    int a=-16;int b=a>>1;//右移操作符,移动的是二进制位//存储到内存的是补码//右移操作符://1、算术右移:右边丢弃,左边补原符号位通常一般都是该种右移)//2、逻辑右移:右边丢弃,左边补0printf"%d\n",b);
    int c=5;int d=c<<1;printf"%d\n",d);//左移操作符:左边丢弃,右边补0
&--按位与,两个都是1才为1,只要有一个是0则为0int e=3;int f=5;int g=e&f;printf"%d\n",g);|--按位或,两个都是0才为0,只要有一个是1则为1int h=3;int i=5;int j=h|i;printf"%d\n",j);^--按位异或,相同为0,相异为1int k=3;int l=5;int m=k^l;printf"%d\n",m);//C语言中没有同或符号,但是只要取异或的非即可,例如: m=!k^l)
    int n=10;char o='r';char*p=&c;int arr[10]={0};printf"%d\n",sizeof n);//4 此处可省略n的括号printf"%d\n",sizeofint));//4 类型不能省略括号printf"%d\n",sizeofo));//1 字符类型为1printf"%d\n",sizeofchar));//1printf"%d\n",sizeofp));//8或者4 指针大小看是64位还是32位printf"%d\n",sizeof char*));//8 指针的类型printf"%d\n",sizeofarr));//40printf"%d\n",sizeofint [10]));//40 数组去掉名字,等号前面的就是数组的类型

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/206548.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

C语言:操作符详解(1)

1.算数操作符:
“” “-” “*” “/” “%”
注意点:
%号 只能用于整数
2.除数不能为0
/号,如果两数都是整数,结果为整数;如果有一个数为小数,结果为小数。
整型提升:凡是针对char&#……

公众号网课查题系统调用

公众号网课查题系统调用
本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全!
1.想要给自己的公众号获得查题接口,只需要两步! 2.题库:
题库:题库后台(点击跳转&#xf……

短视频创作有什么建议吗?直接上干货

大家好,我是我赢助手,专注于自媒体短视频去水印、去重和文案提取运营。作为短视频创作者,最主要要做的事情,就是拍好视频,然后上传到短视频平台上。当然大家最关注的还是账号的涨粉以及收益问题。那么你有没有这样的困……

Spring依赖注入的简介说明

转自:
Spring依赖注入的简介说明
Spring依赖注入的概念说明
Spring依赖注入DIDependency Injection)同IoC控制反转)都是操作的同一件事情 它们两者从不同的角度描述同一概念,在Spring中使用依赖注入可轻松的管理和测试应用程序 在以前的Java实例中,……

C++入门学习3-指针与字符数组,函数,指针数组

c入门学习3char型指针的使用p*p*p与p与[整型指针指向整型数组]的区别指针与函数的使用指向函数的指针空指针调用函数从函数中返回指针一维数组和二维数组的类比CHAR型指针数组关于&achar型指针的使用
char型指针可以直接指向一个字符串,如下
char s[]{a,b,c};……

Java二叉搜索树

1.二叉搜索树的概念
二叉搜索树是一颗特殊的二叉树:
它的左子树的所有节点的值,均小于根节点;
它的右子树的所有节点的值,均大于根节点.
二叉搜索树的中序遍历总是有序的!!!
二叉搜索树查找数据的时间复杂度为 OlogN) ,当树为单分支树时,时间复杂度达到 ON) .
2.二叉搜……

教授先生带你学习并查集

//1、初始化
int fa[MAXN];
void initint n)
{forint i1;i<n;i)fa[i]i;}
假设有编号从1到n个元素,我们用一个数组fa[]来存储每个元素的父节点。一开始我们先将他们的父节点设为自己 (自己的祖先就是自己)如:fa[1]1, fa[2]……

新手如何提高自媒体账号变现能力?

一个新手做自媒体赚钱怎样去做一个有变现能力的账号呢?
大部分人做自媒体都是想要变现的,也有少部分人做自媒体就是为了娱乐,你属于哪一种?
经常有粉丝给大周私信,说自己想要做自媒体不知道怎样开始,今天……

LRR1000 智能程控电阻箱

概述:
LRR1000智能程控电阻箱模块灵活配置,可单通道或多通道使用,以最大限度满足客户需求。可根据用户具体需求定制。LRR1000特别适合用于需要智能输出(包括通讯)高精度电阻。用于替代传统电阻箱,实现自动……

有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行

9)有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。如图3-9试求出蜜蜂从蜂房a爬到蜂房b的可能路线数0<a<b<100)。 #include <stdio.h>
int main)
{long long int a[51] {0,1,1,2};int i;fori 3;i < 50;i)a[i] a[i-1]a[i-2];int x,y;printf……

反序列化渗透与攻防五)之shiro反序列化漏洞

Shiro反序列化漏洞
Shiro介绍
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性
Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默……

vue2+vue3

vue2vue3尚硅谷vue2vue2 课程简介【02:24】vue2 Vue简介【17:59】vue2 Vue官网使用指南【14:07】vue2 搭建Vue开发环境【13:54】vue2 Hello小案例【22:25】了解: 不常用常用:id 更常用 简单class差值总结vue 实例vue 模板 : 先 取 &#xff0……

【hello Linux】环境变量

目录 1. 环境变量的概念 2. 常见的环境变量 3. 查看环境变量 4. 和环境变量相关的命令 5. 环境变量的组织方式 6. 通过代码获取环境变量 7. 通过系统调用获取环境变量 Linux🌷 在开始今天的内容之前,先来看一幅图片吧! 不知道你们是否和我一……

【Linux基础】常用命令整理

ls命令
-a选项,可以展示隐藏的文件和文件夹-l选项,以列表形式展示内容-h,需要和-l搭配使用,可以展示文件的大小单位ls -lah等同于la -a -l -h
cd命令(change directory)
语法:cd [Linux路径]……

客快物流大数据项目(一百一十二):初识Spring Cloud

文章目录
初识Spring Cloud
一、Spring Cloud简介
二、SpringCloud 基础架构图…

C和C++中的struct有什么区别

区别一: C语言中: Struct是用户自定义数据类型(UDT)。 C语言中: Struct是抽象数据类型(ADT),支持成员函数的定义。
区别二:
C中的struct是没有权限设置的&#xff0c……

docker的数据卷详解

数据卷 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方修改会立即同步
一个数据卷可以同时被多个容器同时挂载,一个容器也可以被挂载多个数据卷
数据卷作用:容器数据持久化 /外部机器和容器间接通信 /容器……

13、Qt生成dll-QLibrary方式使用

Qt创建dll,使用QLibrary类方式调用dll
一、创建项目
1、新建项目->其他项目->Empty qmake Project->Choose 2、输入项目名,选择项目位置,下一步 3、选择MinGW,下一步 4、完成 5、.pro中添加TEMPLATE subdirs&#xff……

基于mapreduce 的 minHash 矩阵压缩

Minhash作用: 对大矩阵进行降维处理,在进行计算俩个用户之间的相似度。
比如: 俩个用户手机下载的APP的相似度,在一个矩阵中会有很多很多的用户要比较没俩个用户之间的相似度是一个很大的计算任务 如果首先对这个矩阵降维处理&am……

关于hashmap使用迭代器的问题

keySet获得的只是key值的集合,valueSet获得的是value集合,entryset获得的是键值对的集合。 package com.test2.test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;public class mapiterator……

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注