C语言:类型、运算符、表达式
看了一天书,有点累了。就写写随笔记录一下今天的复习成果吧。
C语言的基本数据类型
数值型:整型数,浮点数,布尔数,复数和虚数。
非数值型:字符。
整数最基本的是int,由此引出许多变式诸如有符号整数signed、无符号整数unsigned、短整数short、长整数long等,前两个根据是否有符号区分,后两个根据所占内存大小区分。c99加入了long long类型是对long的进一步扩展,以求能够表示更大的整数。
浮点数有最基本的单精度浮点数float,双精度浮点数double,c99引入了long double。浮点数是对整数的扩充,能表示的数的范围更广,但是毕竟计算机数的表示根本上具有离散的特点,所以浮点数仍然不能够表示数轴上的所有实数。例如,float型数就有一个最小表示值FLT_MIN和最大表示值FLT_MAX(在头文件float.h中被定义),当运算过程中结果低于FLT_MIN时就会产生下溢,高于FLT_MAX时会产生上溢,下溢和上溢统称为溢出,均是浮点运算出错的一种表现。
关于浮点数再内存中的表示形式,同样是二进制序列,一般被分为符号位、阶码、尾数三部分,阶码以移码形式存放(移码=原值+偏移量)。规格化的浮点数定义了INF,-INF,NaN等特殊浮点值。
C语言主要采用printf和scanf函数进行io操作,两个函数都是格式化参数函数,参数数量可变化。在使用这两个函数时,会涉及到转换说明的概念。需要特别注意的是,printf函数中L只用来修饰浮点转换说明,l则只用来修饰整型转换说明。对于printf函数,当需要根据参数列表的值来决定转换说明中的字段大小时,要使用*修饰符。而*修饰符在scanf函数中作用是虚读。
转换说明和参数列表中的数的类型尽量做到匹配,否则会出现一些奇怪的错误。
例如:printf("%Lf %ld %Lf %ld",1.2L,12L,12L,1.2L); 该语句前两个数输出正确,而后两个数输出错误,错误的产生与printf函数参数传递的机制有关(涉及到栈)。
C语言常用运算符:=、+(单目&双目)、-(单目&双目)、*、/、++、--、%、sizeof、强制类型转换。
运算符的使用涉及到优先级与结合性。需要注意的是++和--运算在一些情况下运算结果会不确定(因为c标准未作规范),例如语句:y=x++ + x++; 可以确定x最终值加2,但无法确定y的结果。
C语言:类型、运算符、表达式的更多相关文章
- 28 JavaScript语言类型&运算符
语言类型: 弱类型:可以改变变量值和对象类型 强类型:可以改变变量值不能改变对象类型 解释型:边编译边执行,速度慢.解释型一般是弱类型 编译型:先编译再执行(C++\Java),速度快.编译型一般是强 ...
- c语言(3)--运算符&表达式&语句
计算机的本职工作是进行一系列的运算,C语言为不同的运算提供了不同的运算符! 1.那些运算符们 .基本运算符 算术运算符:+ - * / % ++ -- 赋值运算符:= 逗号运算符:, 关系运算符:& ...
- PHP语句【变量、运算符表达式、语句】
一.变量的方法.1.empty可以用empty的方法能够判断变量的值是不是为空.①如果我们看一下某一个变量是不是已经存在过了假如我们输出一下 var_dump (empty($a)); 返回值为tru ...
- 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句
[源码下载] 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句 作者:webabcd 介绍速战速决 之 PHP 概述 常量 变量 运算符 表达式 控制语句 示例1. ...
- C语言基础课程 第四课 它山之石可以攻玉---C语言数据类型和表达式
1 C语言中的数据类型 1.1 常量 常量就是在程序中不可变化的量 1.1.1 #define #define MAX 10 Define;//定义了一 ...
- c语言,中缀表达式转后缀表达式并计算
//c语言中缀表达式计算 #include <stdio.h> #include <stdlib.h> #include <string.h> #include & ...
- go语言的运算符
什么是运算符:运算符用于在程序运行时执行数学或逻辑运算 go语言的运算符如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 一,算数运算符 运算符 描述 实例 + 相加 A ...
- C#6.0语言规范(七) 表达式
表达式是运算符和操作数的序列.本章定义了操作数和运算符的语法,求值顺序以及表达式的含义. 表达式分类 表达式分类为以下之一: 一个值.每个值都有一个关联的类型. 一个变量.每个变量都有一个关联的类型, ...
- 3014C语言_运算符
第四章 运算符 4.1 分类 C语言的运算符范围很广,可分为以下几类: 1.算术运算符:用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余(%).自增(++).自减(--)共七种. 2 ...
- 释放Android的函数式能量(I):Kotlin语言的Lambda表达式
原文标题:Unleash functional power on Android (I): Kotlin lambdas 原文链接:http://antonioleiva.com/operator-o ...
随机推荐
- Excel VBA 复制
将 Sheet1 复制到 Sheet3 后面时,实现方法如下: Worksheets("Sheet1").Copy After:=Worksheets("Sheet3&q ...
- SpringMVC方法接收参数可以为空、默认值设置
- php 引用变量
什么是引用: 官方给的解释是:用不同的名字访问同一个变量内容. 1.普通的变量 运行之后内存空间变化是这样的: 2.引用变量 运行之后内存变化是这样的: 几乎没有什么变化. 3.使用unset 销毁的 ...
- 【luogu P3063 [USACO12DEC]牛奶的路由Milk Routing】 题解
题目链接:https://www.luogu.org/problemnew/show/P3063#sub 我很好奇这道题为什么没被收入SPFA好题 #include <cstdio> #i ...
- js 3秒后跳转页面的实现代码
隔多少秒后自动跳转到其它页(js脚本) 方法一: $(function(){ Load(URL); }) var secs = 3; //倒计时的秒数 var URL = "<?= u ...
- Openresty最佳案例 | 第4篇:OpenResty常见的api
转载请标明出处: http://blog.csdn.net/forezp/article/details/78616660 本文出自方志朋的博客 获取请求参数 vim /usr/example/exa ...
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot-mybatis/ 本文出自方志朋的博客 本文主要 ...
- JavaScript-语法专题
一.数据类型的转换 概述 JavaScript是一种动态语言,变量没有类型限制,可以随时赋予任意值 强制转换:主要是值Number(),String(),Boolean三个函数 Number函数,可以 ...
- LeetCode 中级 - 路径总和2(113)
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...
- 数论(一)LOJ1282
1.题目来源LOJ1282 You are given two integers: n and k, your task is to find the most significant three d ...