当前位置: 首页 > news >正文

C语言数据类型、运算符、表达式

数据类型、运算符、表达式
常量:在程序运行中,其值不能被改变的量就叫常量。
150;   //整型常量
12.3;    //实型常量(浮点型常量),带小数点的
'a';    //用单引号引起来的 一个字符 叫字符常量。
变量
标识符:好像人的名字(张三、李四),由 字母数字下划线三中字符组成,并且第 个字符为 字母或者 下划线。  例如:test,icount,_myclass
保留字:系统保留起来,有特殊的用途,所以 不能将C语言中的保留字作为标识符使用,否则会出现语法错误。
变量名就是一个标识符,且变量名 区分大小写。  例如:int _myclass;   int test;
整型 常量
十进制数字: 123; -436; 0;
八进制数字:(以0开头的数字)012;(八进制的12)
十六进制数字:(以0x开头的数是十六进制数) 0x123;  0x12;
整型变量
基本型:int  占四个字节
短整型:short int (short) 
长整型:long int (long)
无符号型:unsigned int,  unsigned short,  unsigned long      只能保存不带符号的数字,不能存符号。
sizeof ()  这个是一个运算符,作用是:看某种类型变量在计算机内存中占多少个字节。
整型变量的 定义
int a,b,c;
unsigned int d,e,f;
int k = 189;   //这里的 = 是定义变量的时候初始化
k = 678;     //这里的 = 是赋值语句
short m = 189;
在一个常数后面加一个字母U,表示该常数用 无符号整型方式存储,相当于 unsigned int;
加一个字母L,表示该常数用 长整型方式存储,相当于 long;
加一个字母F,表示该常数用 浮点方式存储,相当于 float;
long int test = 189L;
int test2 = 23.12F;  (这里只能把23存进去了)
unsigned abcde = 23U;

2.2、数据类型、运算符、表达式
十进制浮点数的表示形式:
      0.12     3。1415926
指数形式的表达形式:
     168E2  ==>  168 *10^2 (表示168乘以10的2次方)  =16800   [也可以表示为  168E+2]
     168E-2  ==>  168 *10^(-2) (表示168乘以10的-2次方) =1.68
实型变量
float:单精度变量 ,一般提供7位 有效数字(保守估计6位),这个数字是随机器而异。
double:双精度变量 ,一般提供15到16位 有效数字(保守15位),这个数字是随机器而异的。
[有效数字举例分析:12345.678              10000.0 表示只有 一位有效数字导致此结果,这就是精度问题
12000.0 表示只有 两位有效数字导致此结果,这就是精度问题
12300.0 表示只有 三位有效数字导致此结果,这就是精度问题
12345.67x 表示只有 七位有效数字导致此结果 
0.1234                     0.1xxxxx   表示只有 一位有效数字 ,小数点前面为0就不算一位
0.12xxxx   表示 两位有效数字 导致此结果
0.123xxx   表示 三位有效数字 导致此结果  ]
注意:浮点数在内存中的存储是以 指数形式来存储的!!所以浮点数保存的范围相当大。
float af1 = 0.5;
float af2 = 0.51;
这两个变量放在编译器上,在设置断点后,F5运行后,把鼠标放在这两个变量的上面,会发现结果不一样。
变量结果不一样的原因是,十进制赋值给实型变量的时候,计算机是把十进制数转换为二进制数来保存的,在我们鼠标读取的时候又把保存的二进制数转换为十进制数,因为二进制数转换为十进制数要用除法(例如:10/3=0.3333333......,0.3333333...*3到不了10=0.9999999999),所以就会造成精度的丢失,从而导致显示的结果不一样。因此,使用浮点数的时候要注意有效数字。
字符型数据
1、 常规字符:用单引号引起来的 一个 字符。
    'a';    'b';
2、 特殊字符:转义字符,以 \ 开头的字符序列。   \n  换行
     '\n'
3、 字符变量:只能保存一个字符,因为一个字符型变量在内存中只占一个字节。
char c1,c2,c3;
c1 = 'a';    //与 C1=97;等价     实际上是吧字符对应的AscII码(数字)放到变量所代表的内存中。
c2 = 'b';   //与 C 2=98;等价
c3= '\';
4、 字符串常量:用一对双引号引起来的一堆字符(可以使一个字符,也可以是多个字符)“Hello world”,"wangjianwei"
注意:不要混淆了‘a’字符型常量(这个占用一个字节)与 "a"字符串常量(这个占用两个字节,最后有一个字符串结束标记的转义字符 \0 这个标记并不会输出)
在编辑字符串变量时,不用写这个结束标记,系统会自动生成。
5、 变量赋初值
int a = 3;
int a,b,c = 6;    //这里只给c赋了值,对于没赋值的变量,其值是不确定的,不可以随意拿过来用。
注意:C语言中的规则是,先定义后使用。
6、数值型数据之间的混合运算
int a = 500;
double ad = 15.67;
double de = a + ad;   //结果等于一个双精度型,计算前会进行数据类型转换:int类型 转换为 double 类型。
int + double = double;
char + int = int ;

相关文章:

  • ThreadPoolExecutor的执行流程和拒绝策略
  • 基于java程序设计课程辅助教学平台计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  • C#基础--集合
  • 【css】svg修改图标颜色
  • RHEL入门之系统角色
  • “50万以内最好SUV”G9上市2天即调价,何小鹏被用户拿捏了吗?
  • Matlab科研绘图颜色补充(特别篇7)—206种欧洲传统颜色
  • C# 异常捕获
  • 【Vue】列表动画
  • 实现一个简单的Database2(译文)
  • COMSOL中事件接口介绍
  • Python基础语法
  • 前端学习——Echarts5开发技术
  • 一个基于.Net Core+Vue+Element Ui开发的OA系统
  • Linux服务器性能监控,首选Zabbix6
  • Android 架构优化~MVP 架构改造
  • Gradle 5.0 正式版发布
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Mysql优化
  • node-glob通配符
  • scala基础语法(二)
  • Sequelize 中文文档 v4 - Getting started - 入门
  • spring学习第二天
  • Unix命令
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 汉诺塔算法
  • 码农张的Bug人生 - 见面之礼
  • 使用权重正则化较少模型过拟合
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 7行Python代码的人脸识别
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​MySQL主从复制一致性检测
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # 达梦数据库知识点
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (补)B+树一些思想
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (七)Java对象在Hibernate持久化层的状态
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)大型网站的系统架构
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .net 调用php,php 调用.net com组件 --
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net6 webapi log4net完整配置使用流程
  • .NetCore部署微服务(二)
  • .NET中 MVC 工厂模式浅析
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思