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

【C语言1】基本数据类型、表达式及运算符

文章目录

  • 1.基本数据类型、表达式及运算符
    • 1.1 C语言中链接数据类型的种类
    • 1.2 基本数据类型
      • 1.2.1 整型
      • 1.2.2 字符型
      • 1.2.3 浮点型
      • 1.2.4 缺省类型(空类型void)
      • 1.2.5 泊尔类型(bool)
    • 1.3 printf终端打印工具
    • 1.4 常量与变量
    • 1.5 表达式
    • 1.6 类型转换
    • 1.7 运算符
      • 1.7.1 算数运算符
      • 1.7.2 赋值运算符
      • 1.7.3 三目运算符
      • 1.7.4 逗号运算符和sizeof( )运算符
      • 1.7.5 关系运算符
      • 1.7.6 逻辑运算符
      • 1.7.7 位运算符
      • 运算符优先级

1.基本数据类型、表达式及运算符

本章思维导图:

此处为C语言汇总版:【C 语言md编辑器版】从0基础开始到熟练掌握【完整篇,共9部分】

1.1 C语言中链接数据类型的种类

  • 基本数据类型

    • 整型
    • 字符型
    • 浮点型
    • 缺省型(空类型void)
    • 泊尔类型(bool)
  • 构造数据类型

  • 指针类型

1.2 基本数据类型

在学习数据类型之前我们可以先学习两个关键字和转义字符、格式控制符、格式修饰符,有助于学习不同数据类型的大小。

​ 运用sizeof( )关键字可以获取数据类型在内存中所占的字节数。

​ 运用printf(" ")可以在终端打印引号内的内容。

转义字符:是通过特定的符号序列表示特殊字符或操作的方式,常用于处理不可打印字符或具有特殊意义的字符。

格式控制符:也被称为格式化字符串格式化标识符。它们是用于指定数据格式的特殊字符序列。

1.2.1 整型

整型数据如int、short、long在内存中以补码形式存储。

  • 有符号整型:可以表示正数,也可以表示负数

    • 最高位为符号位(0:正数 1:负数)

    • 其他位位数据位

    • 正数的补码=原码 负数的补码=反码-1

      例如:-2026

      原码:1000 0111 1110 1010

      反码:1111 1000 0001 0101

      补码:1111 1000 0001 0110

  • 无符号整型:仅能表示正数

    • 最高位为符号位

整型数据的溢出:

例如:unsigned short 最大值+1?
最大值+1----》最小值
最小值-1-.–》最大值

short短整型(内存中2字节)

​ 无符号:0000 0000 0000 0000(最小值0) ——1111 1111 1111 1111(最大值65535)

​ 有符号:1000 0000 0000 0000(最小值-32768) ——0111 1111 1111 1111(最大值32767)

int整型(内存中为4字节)

long长整型(内存中为8字节)

总结:

初学C语言时,int类型应该能满足大多数程序的整数类型需求。尽管如此,还应了解一下整型的其他形式。C语言提供3个附属关键字修饰基本整数类型:short、long和unsigned。应记住以下几点:

  • short int类型(或者简写为short)占用的存储空间可能比int类型少,常用于较小数值的场合以节省空间。与int类似,short是有符号类型。
  • long int或long占用的存储空间可能比int多,适用于较大数值的场合。与int类似,long是有符号类型。
  • long long int或long long(C99标准加入)占用的储存空间可能比long多,适用于更大数值的场合。该类型至少占64位。与int类似,long long是有符号类型。
  • unsigned int或unsigned只用于非负值的场合。这种类型与有符号类型表示的范围不同。例如,16位unsigned int允许的取值范围是0-65535,而不是-32768~32767。用于表示正负号的位现在用于表示另一个二进制位,所以无符号整型可以表示更大的数。
  • 在C90 标准中,添加了 unsigned long int 或 unsigned long 和 unsigned int 或 unsignedshort 类型. C99 标准又添了 unsigned long long int 或 unsigned long long.
  • 在任何有符号类型前面添加关键字signed,可强调使用有符号类型的意图。例如,short、shortint、signed short、signed short int 都表示同一种类型.

1.2.2 字符型

在所有的编程语言中,字符型数据都是以ASCII码(美国信息交换标准代码)的形式保存每一个字符都对应着一个编码,这个编码其实是一个整数来的,编码范围:0 ~ 127。因此字符型数据也可以当作整形数据进行运算。ASCII码表如下:

1.2.3 浮点型

用来表示小数的数据类型。

  • 单精度浮点型:float
    • 精度范围:6-8位
    • 内存中占的字节数:4
    • IEEE标准规定,double类型在内存中符号位(1bit)、指数位(8bits)、尾数位(23bits)方式存储。

8.125

符号位:0

1000.001——>1.000001 2^3

指数位:127+3=130——>1000 0010

尾数位:00000100000000000000000

内存位:0100 0001 0000 0010 0000 0000 0000 0000

0x41020000

  • 双精度浮点型:double
    • 精度范围:12-16位
    • 内存中占的字节数:8
    • EEE标准规定,double类型在内存中符号位(1bit)、指数位(11bits)、尾数位(52bits)方式存储。

8.125

符号位:0

1000.001——>1.000001 2^3

指数位:1023+3=1026——>100 0000 0010

尾数位:00000100000000000000000…(1后有46个0)

内存位:0100 0000 0010 0000 0100 0000 0000 0000…

0x40204000…

注意:浮点数据在储存时可能出现精度损失。

1.2.4 缺省类型(空类型void)

函数的形参和返回值:不返回参数、不返回数据。

用在函数和指针部分,目前暂做了解

1.2.5 泊尔类型(bool)

结果:true/false

#include<stdio.h>#include<stdbool.h>intmain(){boola=true;boolb=false;printf("sizeof(a):%d true:%d false:%d\n",a,a,b);return0;}//输出结果:sizeof(a):1true:1false:0

1.3 printf终端打印工具

用法:可以向终端打印出“”里面的内容,当遇到%开头的格式控制符时,将格式控制符换成逗号后面的值。

格式控制符号意义
%d以十进制整型数据(int)方式打印
%ld以十进制整形数据(long)方式打印
%c以字符方式打印
%f以float类型控制打印
%lf以double类型控制打印
%u以无符号整形数据方式打印
%lu以无符号长整型方式打印

1.4 常量与变量

C 语言操作的对象。

  1. 常量

    在程序运行过程中值不会发生改变的量叫做常量。

    • 整型常量

      不带任何后缀的整型常量默认为signed int类型。

      u:无符号 L:长整型

      ​ 十进制整型常量:123 123L 123ul 123u

      ​ 八进制整型常量:0123 0123L 0123uL 0123u

      ​ 十六进制整型常量:0x123

    • 字符型常量

      ASCII 表

      ‘字母/数字/特殊符号’——> 都是字符

      特殊字符:

特殊字符符号输出
\00
\a响铃
\b退格
\t横向制表符
\v纵向制表符
\n换行符
\r回车符
\\\\
\\(加三位数字,不足三位前面补 0)八进制的数
\x(两位数字)十六进制数
%%%
/""
  • 浮点型常量

    小数默认是double类型。后缀加上f就为float类型。

    例如:double型:3.14 3.14E2 3.14e-2

    float型:3.14f 3.14E2f 3.14e-2f

  • 字符串常量

    “ ” 用双引号引起的内容即为字符串。

    注:所有字符串在最后都会有‘\0’这个不可见字符作为字符串结束标志。

  • 标识符常量(宏定义)

语法:define 标识符 数值

例:#define PI 3.14

注:标识符一般都采用纯大写,且只做代码的替换,不做其他运算。

  • 变量

    在程序运行过程中值可以发生改变的量叫做变量。

    • 变量在 C 语言中的定义:

      数据类型 名称

    • 变量名的命名规则:

      • 由数字、字母、下划线组成,其中数字不能作为开头;
      • 需要避免与 C 语言关键字、库函数、系统函数重复;
      • 名称一般具有代表意义;
    • 命名规则种类:

      驼峰法;例:MaxValue

      Linux 内核命名(下划线);例:max_value

    • 变量的初始化

      语法:数据类型 变量名 = 值

    • 变量的复制

1.5 表达式

定义:使用关系运算符连接常量或变量构成的句子。

注:任何表达式都会有一个确切类型的结果。

1.6 类型转换

  • 显示强制转换

    语法:(目标类型) 转换对象

    强制转换带精度数据时,高精度会损失精度。

    强转不会改变原数据。

  • 隐式类型转换

    转换规则:

此类型转换由操作系统完成。

1.7 运算符

1.7.1 算数运算符

  • 双目运算符:+ - * / %
  • 单目运算符:自增运算符(++)自减运算符(--
    ​ 注:i++先用后加++i先加后用
    求余运算符%必须是整型数据或与整型兼容的数据类型。

1.7.2 赋值运算符

=+=-=/=*=

赋值运算符优先级(14)极低,仅高于逗号,

例:a += 10 +5——>a = (10 + 5)

a += b——>a = a + b其余的均类似

左值:放在运算符左边的数,只能是变量。

右值:放在运算符右边的数,可以是变量、常量、表达式。

两边需保持数据类型一致,否则在某些情况下,会出现数据改变。

例如:

  • int a = 3.14; //此时a只能储存正数部分
  • int a = -100; unsigned int b = 0;b = a;//此时b会直接储存a所在内存的数据,数据的符号位变为数据位,数据改变。
  • 小空间数据类型放入大空间数据类型时,从低位开始储存,高位补符号位(数据不改变)
  • 大空间数据类型放入小空间数据,在小空间数据类型范围内数据不变,反之高位截断

1.7.3 三目运算符

三个操作数。
语法:表达式1 ?表达式2 :表达式3
若表达式1成立,则三目运算符的结果为表达式2,反之结果为表达式3。

1.7.4 逗号运算符和sizeof( )运算符

  • 逗号运算符
    逗号在式中为运算符,优先级最低。在其余位置一般为分隔符。
    例:
    num = 2 + 3, 4 * 5, 6 - 4; //结果为5 num = (2 + 3, 4 * 5, 6 - 4); //结果为2 printf("%d\n", num ); \\此时逗号为分隔符
  • sizeof()
    用来获取数据类型/常量/变量/表达式的结果在计算机内存中占的字节数。
    返回结果:unsigned long

1.7.5 关系运算符

<>>=<===!=
详细知识点请见章节3.3 分支结构

1.7.6 逻辑运算符

&&||
详细知识点请见章节3.3 分支结构

1.7.7 位运算符

运算符优先级

优先级运算符集合运算目数结合方向
1()[]->.后缀运算符左→右
2!~++---(类型)*&sizeof单目运算符右→左
3*/%双目运算符左→右
4+-双目运算符左→右
5<<>>双目运算符左→右
6<<=>>=双目运算符左→右
7==!=双目运算符左→右
8&双目运算符左→右
9^双目运算符左→右
10|双目运算符左→右
11&&双目运算符左→右
12||双目运算符左→右
13?:三目运算符右→左
14=+=-=*=/=%=<<=>>=&=^=|=双目赋值运算符右→左
15,逗号运算符左→右
http://www.jsqmd.com/news/1345517/

相关文章:

  • 企业海外新闻怎么发?朝闻通全球媒体发稿服务流程解析
  • GitHub Actions定时任务实战:Python自动化签到与验证码识别
  • 石家庄玻璃钢脱硫塔厂家推荐、拱形盖板厂家哪家好?2026避坑攻略:4个常见坑+5条硬标准 - geo88
  • 宁津内外墙腻子粉厂家哪家好?2026避坑指南:4个坑+5条硬标准,帮你选对靠谱供应商 - geo88
  • 软考证书挂靠:法律风险、市场逻辑与合规价值实现路径
  • 2026年强效控油洗发水**对比:哪款能让你坚持三天不洗头? - 产品评测官
  • 2026年广州自动化设备与机械手生产线企业专利怎么选?行业细分布局指南 - 米諾
  • 2026辽宁塑料颗粒管链机厂家推荐、化工原料管链机厂家哪家好避坑指南:4大坑+5条硬标准,帮你绕开90%的坑 - geo88
  • Flutter+Rust构建现代SSH管理工具:Polarmote架构解析与实践
  • 在宁波开公司的老板,做好企业合规可规避诸多经营风险 - 产品评测官
  • 弱电施工全流程避坑指南:从规划到验收的实战经验
  • 2026年青岛团建公司怎么选?零事故与真定制 - 万相科技
  • Godot体素开发性能优化与常见问题解决方案
  • 2026超详细教程 安卓玩机必备底座|浅谈 Shizuku 免Root 权限方案的实用价值(附Shizuku 最新版下载)
  • 2026B站视频转文字工具测评:听脑AI、讯飞听见谁更实用 - AI办公提效专家
  • MOV、MKV 本地能播放,为什么上传平台却说格式不支持?
  • 2026届必备的六大降重复率平台实测分析 - 论文助教
  • CSP认证Python第一题精解:从输入处理到实战策略
  • 衢州本地防水补漏精选靠谱推荐:正规漏水检测维修上门师傅(2026最新版) - 吉林同城获客
  • 辽宁粉料输送机厂家推荐、粉体管链输送机厂家哪家好|潍坊贝恩特机械科技服务网点资料核对|2026年8月资料更新 - geo88
  • SOLIDWORKS科研版经销商 微辰三维 打通无人机智能制造全链路
  • 济南散光人群在济南配眼镜,轴位偏差一点视觉疲劳就翻倍 - 配眼镜新资讯
  • 零知派——STM32智能小车系列教程(五):DHT11温湿度、火焰传感器与风扇灭火模块原理及调试
  • 许昌亚克力注塑厂家怎么选?看清材料特性、精度要求、模具投入和量产稳定性 - 中国品牌企业观察网
  • Linux基础学习记录
  • GitLab安全加固实战:从HTTP迁移到HTTPS的完整配置与排坑指南
  • 2026年露营团建如何实现休闲与团建双效合一 - 万相科技
  • 2026年最新苏州geo优化公司——行业白皮书:选型避坑与推荐 - 天下观知
  • 从角色设定到情感工程:拆解“美强惨”叙事的技术化创作流程
  • 2026北京房山透明家装实测:三家装企**与口碑解析 - 2027品牌AI展