c语言 --- 基本数据类型

10 篇文章 0 订阅
订阅专栏

常量

  • 什么是常量:有不同的类型,固定的值,不能更改

  • 常量的分类

    • 整形常量

    • 浮点常量

    • 字符常量

    • 字符串常量

    • 常属性的变量(还是一个常量,不能修改)

整型常量
 整数
 -1,0,1,2,3,4  十进制整数
 特殊格式的整数
 01234   八进制整数:0开头
 08      不算
 0x1234  十六进制整数:0x开头
 0b10111 二进制数:0b开头 2019以下的编译器不支持
 特殊后缀的整数
 1u      无符号整数:没有负数的整数类型
 1L      长整形:占用的内存比较长
浮点常量
 实数(包含整数、小数)
 1.333   在编译器中小数默认是双精度(double)浮点型常量 双精度表示的小数位数>单精度
 1.33f   单精度浮点型常量 占用的内存比双精度少
 特殊的表示方式
 科学计数法
 1234E-5 1234*10的-5次方==0.01234
   .E-4; 错误的写法:整数部分必须要有整数,指数部分必须要有指数
字符常量

转义字符:是具有特定含义字符,一般是由 \ 和特殊字符组成的具有特殊含义的字符

 字符边界符 ''
 'A'
 一般情况只有一个字符 'AB'不算字符
 转义字符
 '\t'
 '\n'
字符串常量
  • 字符串边界符 " "

  • 字符串结束标记:每一个字符串都会存在看不见的结束符('\0');

变量

  • 什么是变量,可以改变的量,C 语言中有不同类型的变量,一种类型的变量只能存储一种类型的数据(其实在C语言中充当数据容器的作用)

  • 定义变量的语法:类型 标识符;

    • 类型

    • 标识符:就是一个名字、变量名、函数名

      • 起名字:见名知意

      • 标识符不能用数字当做开头,可以用 _、z 字母当做开头

      • 标识符不能是 C 语言中的关键字(if,case,switch,int)

      • 标识符大小写区分,大写和小写是不同的名字

    • 起名字的方式

      • 帕斯卡:大驼峰 PlayMusicByUser--->MFC中的函数一般采用大驼峰命名方式

      • 驼峰:playMusicByUser--->一般使用这一种命名方式,首字母小写

      • 匈牙利:特定前缀组成的命名方式,在帮助文档中做说明

        • g_ :全局变量 g_iNum;

        • c_:常量 c_iNum;

    • 基本数据类型

      • 基本的数据类型

        • int:整数类型

        • float:单精度浮点类型

        • double:双精度浮点类型

        • char:字符类型

      • 修饰词

        • long(长)和short(短):体现数据占用内存(容量的大小)的基础上

 short iNum = 0;
 short int sNum = 0;
 long lNum;
 long int liNum;
 有修饰和没有修饰词是两种不同的数据类型 数据类型int可以省略 修饰词不能省略
 什么时候用短的-> 要节省内存 占用的内存是原来的一半
 什么时候用长的-> 数据超出了原来的表示范围用long
  • unsigned(无符号) 和 signed(有符号)

 无符号:不能表示负数
 一般默认的类型,表示的是有符号
 年龄没有负数-->这种需求
  • const(常属性)

    • 常属性的变量定义的时候必须初始化

    • 常属性的变量不能被修改

    • 小提示:一个程序不能大量出现常量的数 <-> 幻数

    • 符号常量 <-> 宏定义的常量:用一个符号去替换一个常量

    • 注意点

      • short 和 long 只能修饰整形

      • unsigned(无符号) 和 signed(有符号) 修饰整型和字符,不能修饰实数,实数本身包含正负数

auto/extern/static (后续再说)

 /**********************************
 *           g_ : 全局
 *           c_ : 常量
 *           .....
 ***********************************/
 #include <stdio.h>
 int main() 
 {
     1;
     0123;
     0x123;
     0b101110;
     1L;
     1u;
     1U;
     1.444;
     1234E-5;
     'A';                    //单个字符
     "A";                    //两个字符 
     //定义变量的语法
     int iNum;               //先定义变量后赋值
     iNum = 1;                
     iNum = 2;               //程序从上往下执行iNum = 2
     float fNum;
     double dNum;
     char cNum = 'A';        //在定义变量时赋值
     //赋值: =
     long lNum = 1L;
     short sNum = 1;
     unsigned int uiNum = 1;
 ​
     const int ciNum = 222;
     //ciNum = 134;           //错误 常属性的变量不能被修改
 ​
     //short float sfNum = 0;
     //short char scNum;
     unsigned char c = 'A';
     //unsigned float ufNum;
     return 0;
 }

进制与数据存储

  • 了解各种进制

  • 十进制:1 2 3 4 满10进 1

  • 二进制:二进制表示3 0---0 1---1 10---2 11---3 满 2 进 1

  • 十六进制 满16进 1

  • 八进制:八进制表示8---10 满 8 进 1

  • 十进制转其他进制都是用短除法

  • 十进制转二进制:短除法

    • 123的二进制:1111011

    • 十进制转八进制:短除法

    • 123的八进制:173

    • 十进制转十六进制:短除法

    • 123的十六进制:7b

    • 十六进制中大于10的数表示方式不一样:11:a 12:b 13:c 14:d 15:e 16:f

    • 转换的小知识 二进制转八进制 转十六进制

    • 16---10000 8---1000 4---100 2---10 1---1

    • 三个二进制位表示一个八进制位

    • 四个二进制位表示一个十六进制位

  • 其他进制转十进制 加权法

二进制与数据存储的关系

  • 二进制与存储单位

  • 存储的最小单位:一位,即一个二进制位

存储单位表示含义
bit:位一个二进制位,能够表示的数字只有0和1
byte:字节1B=8b,8个二进制位表示一个字节
KB:千字节1KB=1024B =2^10
MB:兆字节1MB=1024KB=2^10KB
GB:吉字节1GB=1024MB=2^10MB
TB:太字节1TB=1024GB=2^10GB

数据的二进制存储

  • 所有数据在计算机中都是用补码来存储的

  • 补码:反码 + 1

  • 反码:原码取反(但是符号位不变)

  • 原码:负数:引入了符号位,用第一位表示正负,0表示正数,1表示负数

  • 正数的二进制码 都是三码合一

  • 整数在计算机中用32位表示

  • 负数:1. 先求原码:原码引入了符号位,最高位为符号位,用1表示负数 2.求反码:原码取反,符号位不变 3.求补码:反码+1

  • 补码转换为原码:补码 - 1->反码,反码取反->原码

 正数:3:(三码合一)   
 原码:0000 0000 0000 0000 0000 0000 0000 0011 
 反码:0000 0000 0000 0000 0000 0000 0000 0011 
 补码:0000 0000 0000 0000 0000 0000 0000 0011 
 负数:-3
 原码:1000 0000 0000 0000 0000 0000 0000 0011   //引入符号,最高位表示符号位
 反码:1111 1111 1111 1111 1111 1111 1111 1100   //原码取反(但是符号位不变)
 补码:1111 1111 1111 1111 1111 1111 1111 1101   //反码+1
 //3-3
 0000 0000 0000 0000 0000 0000 0000 0011       //两者相加 最高位不用管 已经抛到最外面了
 1111 1111 1111 1111 1111 1111 1111 1101   
 0000 0000 0000 0000 0000 0000 0000 0000       //进位处理(寄存器有一个标志位处理)
 //注意点:补码要算出十进制数,必须先转换为原码,再去用加权法
  • C语言数据的范围

范围计算:以 char 类型为例

char:占用一个字节(8位) 1 <-> 0000 0000

考虑符号位,能够表示的最大值:0111 1111 == 1000 0000-1 == 2^7-1

1000 0000-1

0000 0000

2^7-1=128-1 =127

-2^7= -128

int:占用四个字节(32位) <-> -2^31-2^31-1

C语言-基本数据类型简介
11-21
适用于初学C语言的同学哦!!! 包含基本数据类型及修饰基本数据类型的修饰符以及数据类型的大小及数据类型的范围。
零基础入门C语言-王桂林 -v2-.pdf
06-07
在讲解数据类型与变量时,作者讲解了C语言中的关键字、变量的定义和命名规则、内存模型、计算机编码基础、补码概念、基本数据类型(包括数值类型和字符类型)、常量的类型和大小、格式输入与输出、类型转换等。...
次方数(C语言
matchless_QYW的博客
03-17 3104
解题思路: 本题的难点在于如何判断边界,我们先判断上边界:我们试着以每位数最大单位数9为边界,所以9^5=59049,有5位数,所以5*59049=295245; 下边界:按题目要求,对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数, 因为10以下,只有一位,不存在求和,故从10以后考虑。 #include<stdio.h> int main() { int n...
C语言10的N次方怎么表示
热门推荐
renyuxiaomei的博客
10-06 15万+
10的N次方为 1e10 也可写成1e+10(如果是负N次方的话就把加号变成减号) e大小写都可以 需要注意的是e前面必须有一个数字 不然的话就不合法。 另外可以用函数表示c语言中 求x的y次方可用pow(x,y)表示。所以10的N次方也可表示为pow(10,N), 需要注意的用pow(x,y)的话要用到math.h头文件
c语言中绝对值小于10负5次方,用C编写:输入一个实数x,计算并输出下式的值,直到最后一项的绝对值小于10的负5次方(保留两位小数)。...
weixin_30462741的博客
05-22 3650
#include #include int main(){float fac(float);/*x!*/double a; /*临时储存项x^n/n!*/double sum; /*总和*/int i=0; /*计数器*/int x;/*变量x*/bool stp=true; /*终止标志*/printf("x=?\n");scanf("%d",&x);while (...
C语言中的0U或1U是什么意思?
NBDR_YL的博客
03-04 8万+
最近学STM32的芯片,官方例程中很多地方有0U/2U/4U...这类的表示,刚开始有些迷茫,细查之后得知,都是C放言默认的数据类型表示. 在C语言中,数值常数默认为int型,当数值常量后边有U/UL/f等尾缀时,代表指定其数据类型. 0U 表示 无符号整型 0 1U 表示 无符号整型 1 如果不写U后缀,系...
C++中幂次方表示方法
Myblog
11-12 7669
#include<cmath> double a; int b; pow(a,b);//a必须是double类型的,b是a的多少次方 ! !
C语言--数据类型和取值范围
02-24
C语言里,数据类型即说明了它...short,long,longlong我们可以为这些基本数据类型加上一些限定符,比如表示长度的short和long。比如int经过限定符修饰之后,可以是shortint,longint,还可以是longlongint。其中short
C语言基础-数据类型与基本操作.pdf
最新发布
07-01
综上所述,掌握C语言基本数据类型和操作是学习C语言的关键步骤。理解各种数据类型的特点以及如何正确使用它们可以帮助开发者写出更加高效和可读性强的代码。此外,正确地区分和使用常量与变量也是非常重要的,这有...
C语言基础课 编写程序之1.计算s=1-1/3+1/5-1/7+1/9+...共n项的和,n的值从键盘上输出2.求e=1+1!+1/2!+...+1/n!,直到最后一项小于10的-5次方为止(含该项)
wuxinxin577的博客
10-16 3140
2.编程求e=1+1!,直到最后一项小于10的-5次方为止(含该项)。1.计算s=1-1/3+1/5-1/7+1/9-1/11+1/13+...共n项的和,n的值从键盘上输出。
c语言/abs()函数和fabs ()函数
m0_65178508的博客
02-16 1万+
c语言中存在两个函数表示一个数的绝对值abs()和fabs(); 要想引用这两个函数则需要引用头文件 #include<math.h> abs函数是对整数进行取绝对值 fabs函数是对浮点型进行取绝对值 cplusplus对abs和fabs()函数的理解如下: #include <math.h> int a=abs(-1);//里面可以表示一个表达式 ...
c语言表达式的次方怎么表示,在C语言中,10的n次方怎么表示
weixin_30296363的博客
05-18 9679
有两个函数可以实现,double pow(double x, double y),double pow10(int p)下面是这两个函数的使用方法,个人建议用:pow10(n)函数名: pow功 能: 指数函数(x的y次方)用 法: double pow(double x, double y);程序例:#include #include int main(void){double x = 2....
C语言用双重循环求e(条件:最后一项小于10的-5次方时结束)
风天语的博客
03-10 1800
代码如下: #include <stdio.h> int main() { double e = 1, t = 1, k; int i, j; for (i = 1; t>=1e-5; i ++) { k = 1; for (j = 1; j <= i; j ++) { k *= j; } t = 1 / k; e += t; } printf("e=%f\n", e); return 0; }
C++中的幂次表示
buaadf的博客
06-29 1万+
C++中不能用^来计算幂次,^是位异或(XOR)在cmath(math.h)头文件中有pow()函数,用法如下:double pow(double x, double y);
(C语言)用迭代法求x=根号a,要求前后两次求出来的x的差的绝对值小于10^-5
爱上小公举
04-20 6694
用迭代法求x=根号a,要求前后两次求出来的x的差的绝对值小于10^-5
C++ 中abs,fabs,fabsf的使用
PtaQ的博客
09-20 1万+
int abs(int i);                    //处理int类型的取绝对值 double fabs(double i);  //处理double类型的取绝对值 float fabsf(float i);          //处理float类型的取绝对值...
c语言中,abs()和fabs()的区别?
李典金
04-25 3万+
c: abs() / fabs()
写文章

热门文章

  • Qt --- 信号与槽 18940
  • 寻路算法 --- A星寻路算法 10684
  • Easyx-----c语言实现烟花表白程序 8783
  • c语言 --- 二维数组 8216
  • MySQL --- 常用函数 - 字符串函数 7989

分类专栏

  • LeetCode+ 付费 18篇
  • LeetCode 17篇
  • C 10篇
  • C++ 48篇
  • STL容器 13篇
  • 设计模式 5篇
  • C / C++小游戏 19篇
  • MySQL 16篇
  • Qt 7篇
  • Windows / MFC 7篇
  • Linux
  • 数据结构 26篇
  • 算法篇 13篇
  • Python 1篇
  • HTML 3篇
  • CSS
  • JavaScript

最新评论

  • 整数二分

    丘狸尾: 个人理解,为什么+1,为真可能不会改变检查范围,为假一定会消减一部分,所以**尽量让mid往假的那边靠**,防止死循环 也就是说,+1靠近假,就+,不+靠近假,就不加

  • 整数二分

    丘狸尾: 二分法思想啊,什么跑另一个范围找

  • 搜索与图论 --- 最短路 - SPFA 算法、Floyd 算法

    2301_80045399: 不过我感觉那个不用初始化,其实可以讲成本来是从一出发的,那么,只有dis1为0好,这个判断是否存在复环,所以是可以从任意一点出发,那么所有点的dis就都为0

  • 搜索与图论 --- 最短路 - SPFA 算法、Floyd 算法

    2301_80045399: 一眼y总门徒

  • 搜索与图论 --- 最短路 - SPFA 算法、Floyd 算法

    2301_80045399: 那个w要放在idx加加前面,Idx自增之后是准备引用做连接的空间

最新文章

  • LeetCode+ 56 - 60
  • C语言 --- 函数
  • MySQL --- 子查询 - 表子查询
2024年2篇
2022年167篇
2021年48篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiuqiuyaq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家舟山商场开业美陈南京户外玻璃钢雕塑设计玻璃钢人物镂空雕塑厂白色玻璃钢鸡蛋雕塑昆明美陈商场里水玻璃钢人物雕塑安庆酒店玻璃钢花盆贵港玻璃钢雕塑制作玻璃钢字母座椅雕塑遵义玻璃钢景观雕塑款式多样哪有玻璃钢雕塑设计公司信誉好的玻璃钢景观雕塑秦淮美陈商场布置天津玻璃钢仿真雕塑艺术商场美陈供应天津定制玻璃钢雕塑多少钱玻璃钢小品雕塑费用多少成都玻璃钢艺术雕塑制作山东艺术商场美陈批发价贺州玻璃钢雕塑制作玻璃钢雕塑 骨架张家口玻璃钢仿真水果雕塑厂家安丘玻璃钢雕塑头像玻璃钢造型雕塑网站玻璃钢雕塑价格是多少广西玻璃钢花盆初冬商场美陈温州公园玻璃钢雕塑价格新密抽象玻璃钢卡通雕塑厂家玻璃钢文字音符雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化