C运算符部分

简介: C运算符部分

文章目录


while小试牛刀


pow()函数


基本运算符


赋值运算符


加法运算符:+


减法运算符:—


符号运算符:+和-


乘法运算符:*


除法运算符:/


运算符优先级


sizeof运算符和size_t类型


求模运算符:%


递增运算符:++


递减运算符:_ _


优先级


主要内容:


关键字:while,typedef


运算符:+,_,*,/,%,++,-- – ,=等各种运算符


while小试牛刀


#include<stdio.h>
// 用while实现1~100的和并打印出来,从而学习while循环的使用
int main()
{
    int i=1;
    int sum=0;
    while (i<=100)//其内必须为表达式
    {
        /* code */
        sum+=i;//累加并把累加结果给sum
        i++;//i++实现1~100
    }
    printf("1~100的整数和为:%d",sum);
    return 0;
}

36.png


pow()函数


C中没有指数运算符,不过C的标准函数库提供了 pow(a,b)函数用于指数的运算,表示a的b次幂,比如:


#include<stdio.h>
#include<math.h>
int main(){
    int i;
    i=pow(2,3);
    printf("%d",i);
    return 0;
}


需要注意使用pow()函数需要引入math库。


基本运算符



C用运算符表示算术运算,C大约40个运算符,目前我们学习最常用的


赋值运算符


下面是赋值表达式语句


a=5;  //把数值5赋给变量a
b=2;  //把数值2赋给变量b
c,d=0;  //c未初始化,把数值0赋给变量d
a=a+1;  //找到变量a,在该变量的基础上加1,然后得到的结果赋值给变量a
5=a;  //在C中没意义,实际上是无效的


从上面的栗子简单总结:编写代码,=左侧的项必须是一个变量名。实际中,赋值运算符的左侧必须开辟一个储存位置,最简单的方法就是使用变量名。(后续指针也可以指向一个储存位置)


几个术语


数据对象:用于储存值的数据区域的统称

左值,可修改的左值:用于表示或存储位置的标签


右值:指的是能赋给可修改左值的量,且本身不是左值。比如a=5,这是a是可修改的左值,5是右值,事实上,右值可以是变量,常量或者其他可以求值的表达式


加法运算符:+


用于加法运算,使其两侧的值相加,相加的值可以是常量或者变量


a=20+10;
a=b+c;//a,b,c都是可修改的左值


减法运算符:—


用于减法运算,使其左侧的数减去右侧的数。


a=30-10;


+和—都是二元运算符,为啥这样叫呢?因为需要两个运算对象


符号运算符:+和-


就是正负号,OK

他们都是一元运算符,我就不多啰嗦。下一个


乘法运算符:*


不多说,同理


除法运算符:/

整/整== 整

10/2==5


小数/小数== 小数

10.0/2.0==5.0


还有一种情况:5/3你猜等于几,等于1???,聪明。这种现象被成为截断


运算符优先级


括号


乘除(先后顺序)


加减(先后顺序)


赋值


当然这仅仅在一部分里,随着运算符的增多继续深入


sizeof运算符和size_t类型


sizeof运算符以字节为单位返回运算对象的大小。

运算对象可以是具体的数据对象(变量名)或类型。如果运算对象是类型,则必须用圆括号括起来。


C规定sizeof返回size_t类型的值。这是一个无符号整数类型,但它不是新类型,size_t是语言定义的标准类型


C有一个typedef机制,允许程序员为现有类型创建别名。比如:


typedef int cat;
//这样cat就成为了int的别名,现在我们可以这样声明int类型
cat a;//使用了typedef机制


求模运算符:%


求模用于整数运算,比如13%5(13求模5)结果是3,它算的是余数(求模运算只能用于整数,不能用于小数,它非常有用,求模运算符常用于程序控制流)


递增运算符:++


优点:1. 使程序简洁 2. 通常用它生成的二进制代码效率更高,因为它和实际的机器语言指令很相似。


i++;
++i;


两种的区别在于递增发生的时间不同


a=3*++i;


i递增1

然后3乘i,得到结果赋值给a


a=3*i++


3先乘i,并将结果赋值给a


i递增1


区别:

i++:使用i的值以后,递增i(先用后增)

++i:使用i的值之前,递增i(先增后用)


递减运算符:_ _


与++相对应


优先级


a=2;
b=3;
c=(a+b++)*6;


5*6=30

b的值只有在使用后才递增为4,


所以可以看出优先级:


1.括号


2.递增递减运算符


3.乘除


4.加减


5.赋值

……




相关文章
|
SQL 关系型数据库 MySQL
MySql 别犯糊涂了! LEFT JOIN 的 ON 后接上筛选条件,多个条件会出事!
MySql 别犯糊涂了! LEFT JOIN 的 ON 后接上筛选条件,多个条件会出事!
3219 0
MySql 别犯糊涂了! LEFT JOIN 的 ON 后接上筛选条件,多个条件会出事!
|
机器学习/深度学习 人工智能 PyTorch
使用Pytorch构建视觉语言模型(VLM)
视觉语言模型(Vision Language Model,VLM)正在改变计算机对视觉和文本信息的理解与交互方式。本文将介绍 VLM 的核心组件和实现细节,可以让你全面掌握这项前沿技术。我们的目标是理解并实现能够通过指令微调来执行有用任务的视觉语言模型。
341 2
|
11月前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
1194 8
|
移动开发 安全 Java
Java Applet基础详解
Java Applet基础详解
604 0
|
域名解析 弹性计算 资源调度
ECS域名问题之绑定如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
存储 Python Windows
文件位置标记与定位:概念、方法与实现
文件位置标记与定位:概念、方法与实现
382 0
|
开发工具 数据安全/隐私保护 git
解决方案:Github Support for password authentication was removed on August 13, 2021.
解决方案:Github Support for password authentication was removed on August 13, 2021.
1073 1
解决方案:Github Support for password authentication was removed on August 13, 2021.
|
小程序 JavaScript 前端开发
【每周一个小技巧】支付宝小程序如何跳转到支付宝搜索页面
【每周一个小技巧】支付宝小程序如何跳转到支付宝搜索页面
374 7
|
存储 缓存 网络协议
SYN Flood是什么?这篇给你讲明白!
SYN Flood是1994年发现的DDoS攻击方式,利用TCP三次握手的漏洞,通过发送大量伪造源IP的SYN报文,使服务器创建半连接,耗尽资源,导致服务中断。防御策略包括源认证、首包丢弃和使用Anti-DDoS系统。高防服务器和抗D盾等解决方案提供DDoS清洗和CC攻击防御,通过智能分布式云接入隐藏真实IP,保持TCP连接稳定,同时提供网络加速和防掉线功能。
|
网络协议 物联网 网络架构
计算机网络:计算机网络概述
计算机网络:计算机网络概述
471 3