干货 | C语言系列3——常量,运算符,常用数学函数......

符号常量和const常量

1.符号常量

    符号常量通俗来讲就是“替换”,又称为宏定义。格式如下:

    #define 标识符 常量

    宏定义可以定义单个变量为常量,也可以定义某个语句或片段。

    宏定义有一点需要特别注意,它只是“机械”替换,并不会自己加括号哦,比如:

#define x b-2    #宏定义(没有分号 ; )

...

y = x*3;   #求y

    此时,结果是:y = b-2*3,而不是我们想看到的y = (b-2)*3!!!

2.const常量

const  变量类型  变量名 = 常量;

    这两种写法被称为常量,是因为它们一旦定义,就不能改变该变量的值。在定义单个变量为常量时,推荐使用const。

运算符

    常用的运算符有算术运算符,关系运算符,逻辑运算符,条件运算符,位运算符等等。

1.算术运算符

     ,-,*都直接用,没有什么特殊说明;

    /需要注意,若两个数均为int型,相除后结果会自动向下取整,若要有小数部分,则需要强制转化类型为float或double(因为double精度较高,所以推荐double);

    %为取模运算,在需要区分开个位十位百位等各个位的数字时,常用;

     自增,--自减;

    自增自减写法有两种:

    i / i       i--/--i

    区别在于第一种是先使用i再加(减)1,第二种是先加(减)1再使用i。

    y = y 3等价于y = 3;

    其他算术运算符类似。

2.关系运算符

    常用的有<,>,<=,>=,==,!=。特别要注意==,一个=是赋值。这种在判断语句中很容易出错,比如:

if(y = 2)  ...

    在这个语句中,应该写==,这种情况编译器不会报错,自己也较难发现这种错误。在编程中,很多人为了避免这个错误发生,会这样写:

if(2 == y)  ...

    将常量写在前,如果少写一个=,编译器就会报错。

3.逻辑运算符

    &&, ||, !分别对应与,或,非

    一定要记得是两个&,两个|,否则会变成位运算!

4.条件运算符

    是C语言中唯一的三目运算符,格式如下:

a ? b : c

    若a为真,则取b,否则,取c。

例:

int a = 3, b = 5,  c = 7, d = 9

int e = a>b ? c : d;

此时,a>b为假,所以e = d,即9。

5.位运算符

输入/输出

    C语言中必不可少的输入输出函数scanf与printf,在头文件stdio.h中,这也是C语言中最为基础的。在这里,我主要总结一些需要注意的点。

1.scanf

scanf("格式", 变量地址)

    不同的数据类型对应不同的格式,如下:

    

    可以看出,数组名没有取地址符&,因为数组名本身就是那个数组的首地址。其他输入变量的情况,不能漏掉&;

    scanf除了对于%c,其他格式都以空格,回车等作为结束标志,而%c可以取到空格,换行,因此,getchar( )和putchar( )在这种情况下可以使用,当你想抛掉空格,换行符,或者抛掉某个不要的字符,可以直接用getchar( ),不给相应的变量即可。putchar( )是输出某个字符。

2.printf

printf("格式", 变量名)

    可以看出,double类型在输入时格式为%lf,在输出时格式为%f,虽然在一些编译器中输出为%lf也没错,但最好还是按照标准来。

    还有3种实用的输出格式:

(1)%md

    不足m位的变量以m位右对齐输出,前面补空格,若超过m位,则保持原样。

(2)%0md

    不足m位的变量以m位右对齐输出,前面补0,若超过m位,则保持原样。

(3)%.mf

    保留m位小数。这里的保留使用的规则是“四舍六入五成双”,若要“四舍五入”,则需要用round( )函数。

常用数学函数

1.round(double x)

    该函数为对double型变量进行四舍五入的函数,返回类型也是double型,若需要输出整数,最终结果需进行取整,即强制类型转换。

2.floor(double x)和ceil(double x)

    分别对double型变量进行向下取整和向上取整。

3.pow(double x, double y)

    求x的y次方。一定要注意x, y都为double型。可以这样写:

z = pow(2.0, 3.0)

4.sqrt(double x)

    将x开方,返回double型变量的算术平方根。

5.log(double x)

    返回double变量以自然对数为底的对数。若要求自然对数以外的底的对数,需要用换底公式:

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javafx 浏览器_浏览器中的JavaFX

javafx 浏览器浏览器中的JavaFX屏幕截图 最近&#xff0c;Carl Dea和我启动了一个新项目&#xff0c;将JavaFX 8引入浏览器。 今天&#xff0c;我想介绍我们创建的前两个概念验证&#xff0c;以查看该想法是否完全可行。 对于不耐烦的人&#xff0c;这里是到PoC的链接。 但请注…

django写mysql轮询_django 多数据库及分库实现方式

定义及路由机制定义在settings里面的DATABASES是一个字典&#xff0c;用于定义需要的数据库&#xff0c;如下&#xff0c;一共定义了两个数据库。DATABASES {default: {NAME: app_data,ENGINE: django.db.backends.postgresql_psycopg2,USER: postgres_user,PASSWORD: s3krit}…

python换行不执行_PYTHON无法换行问题,求指点

PYTHON无法换行问题&#xff0c;百思不得其解。fp.write(u{a}\n.format(a\n.join(a)))改成fp.write(u{a}\n.format(a&#xff0c;.join(a)))“&#xff0c;”可以正常显示下附源码&#xff0c;请指点一二#!/usr/bin/env python# encodingutf-8from bs4 import BeautifulSoupimp…

javafx 示例_JavaFX列表示例

javafx 示例这是使用JavaFX构建的示例列表应用程序。 该应用程序是待办事项列表。 该应用程序具有添加&#xff0c;更新和删除列表中项目的功能。 列表数据存储在HSQLDB关系数据库中。 该应用程序使用JDBC&#xff08;Java数据库连接&#xff09;API访问数据库。 该应用程序打包…

嵌入式C语言的7个硬核知识

1void 与 void*void表示的是无类型&#xff0c;不可以采用这个类型声明变量或常量&#xff0c;但是可以把指针定义为void类型&#xff0c;如void* ptr。void指针可以指向任意类型的数据&#xff0c;可用任意数据类型的指针对void指针赋值&#xff0c;比如int *ptrInt&#xff1…

python离线安装第三方库whl_详细说明如何在pycharm不联网的情况下,离线安装第三方库及依赖包(如sklearn)...

1、安装目标库1、首先&#xff0c;选择你要导入的库文件&#xff0c;如seaborn库下载网站&#xff1a;https://pypi.org/或https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy2、在下载路径下空白处&#xff0c;按住Shift鼠标右键&#xff0c;选择在此处打开命令窗口执行安装命…

java 手机网站 cookie操作_java操作cookie问题

做的一个ssh项目&#xff0c;其中需要使用cookie来辅助记录用户页面访问量。可是我在使用的时候出现问题&#xff0c;就是我设置了有效期&#xff0c;但是关闭浏览器后或者重新打开另一个浏览器均不能获取到设置的coo...做的一个ssh项目&#xff0c;其中需要使用cookie来辅助记…

C语言指针用得好犹如神助!这些使用技巧值得收藏

指针用的好犹如神助&#xff0c;用不好会让你叫苦连连&#xff0c;但大多数人是用不好指针的&#xff0c;所以后来的很多语言都把指针封装&#xff0c;屏蔽。比如JAVA&#xff0c;java是没有指针的&#xff0c;但是很多地方都用到指针&#xff0c;不过不对用户开放&#xff0c;…

wso2_使用WSO2开发

wso2几个月以来&#xff0c;我又开始使用WSO2产品。 在接下来的文章中&#xff0c;我描述了我遇到的一些&#xff08;小&#xff09;问题以及如何解决它们。 设置开发环境时&#xff0c;我要做的第一件事是在Mac上下载Developer Studi o&#xff08;64位版本&#xff09;。 解…

python数据获取手段包括哪些_python开发应用-本地数据获取方法

文件的打开、读写和关闭文件的打开&#xff1a;file_objopen(filename,moder,buffering-1,...)filename是强制参数mode是可选参数&#xff0c;默认值是rbuffering是可选参数&#xff0c;默认值为-1(0代表不缓冲&#xff0c;1或大于1的值表示缓冲一行或指定缓冲区大小)f1open(e:…

有意思的C语言运算符

在C语言中&#xff0c;运算符用于执行程序代码运算&#xff0c;会针对两个或者两个以上操作数进行运算。比如&#xff1a;5 - 2&#xff0c;它的操作数是 5 和 2&#xff0c;而运算符则是 “-”。常见的运算符可大致分为 4 种类型&#xff1a;算术运算符、关系运算符、赋值运算…

java反向映射_opencv 直方图和直方图反向映射

histogram使用np进行直方图像素统计通过histogram对图像的三个通道分别进行一维直方图统计&#xff0c;由于被统计的数组必须是一维的&#xff0c;所以使用ravel将二维数组转换为一维数组&#xff0c;通过range参数指定统计区间为0--256&#xff0c;bin参数指定将统计区间分为2…

hamcrest_重新设计Hamcrest

hamcrest我在Hamcrest库上做了几篇文章 &#xff0c;我确实很喜欢使用它&#xff0c;但是我希望对其进行一些更改。 我了解他们所做的大多数设计决策&#xff0c;但我认为其中一些确实不值得。 介绍Litecrest 我对库所做的大多数更改都有助于减轻Hamcrest的负担&#xff0c;因…

程序员鄙视链python_关于程序员之间的鄙视链

鄙视像条食物链&#xff0c;是个绕不开的怪圈。在这个怪圈中&#xff0c;每一个人&#xff0c;都在链条的最末端。朋友圈有鄙视链&#xff0c;相亲有鄙视链&#xff0c;程序员圈也有鄙视链看完下面的鄙视链&#xff0c;你是那一层&#xff1f;↓↓↓↓【1】努力成为全栈&#x…

java自定义jsp标签_自定义JSP标签

1 写一个标签处理类//标签处理类public class IpTag implements SimpleTag {private PageContext pageContext;//Web容器调用NO1public void setJspContext(JspContext pc) {System.out.println("setJspContext()");pageContext (PageContext) pc;}//Web容器调用NO2…

新手学习C语言编程的8个致命错误,你中招了吗?

序言C语言的最大特点是&#xff1a;功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格&#xff0c;这就给编程人员留下“灵活的余地”。但由于这个灵活给程序的调试带来了许多不便&#xff0c;尤其对初学C语言的人来说&#xff0c;经常会出一些连自己都不…

java与java ee_Java EE拦截器

java与java ee历史 我认为重要的是要看一下Java EE中Interceptor的发展&#xff0c;因为它是从EJB特定的项目开始的&#xff0c;后来又演变成一个单独的规范&#xff0c;现在可供其他Java EE规范扩展&#xff0c;这一事实很简单。 版本1.0 拦截器最初是在EJB 3.0 &#xff08;…

python怎么查询元素是否在列表中_python怎么判断某一元素是否在列表中

定义一个列表&#xff0c;并判断元素是否在列表中。python学习网&#xff0c;大量的免费python基础教程&#xff0c;欢迎在线学习&#xff01;例如&#xff1a;test_list [ 1, 6, 3, 5, 3, 4 ]print("查看 4 是否在列表中 ( 使用循环 ) : ")for i in test_list:if(i…

python中带附件发送电子邮件_python发送带附件邮件

Python SMTP发送邮件SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则&#xff0c;由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。Python创建 SMTP 对象…

jpa 实体图查询_JPA实体图

jpa 实体图查询JPA 2.1的最新功能之一是可以使用实体图指定获取计划。 这很有用&#xff0c;因为它允许您自定义使用查询或查找操作检索的数据。 在使用中大型应用程序时&#xff0c;通常以不同的方式显示来自同一实体的数据。 在其他情况下&#xff0c;您只想选择最小的信息集…