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

C语言数据类型和变量

C语言数据类型和变量

  • 数据类型分类
    • 内置类型【C语言本身就具有的类型】
    • 自定义类型【自己来创建类型】
    • 取值范围
  • 变量
    • 变量的创建
    • 变量创建的语法形式
    • 变量的分类
      • 全局变量
      • 局部变量
    • 栈区、堆区、静态区
  • 算术操作符
  • 赋值操作符
    • 连续赋值
    • 复合赋值符
  • 单目操作符:++、--、+、-
  • 强制类型转换

数据类型分类

内置类型【C语言本身就具有的类型】

  • 字符
  • 整型
  • 浮点型
    • 小数点是可以浮动的【3.14 = 0.314 * 10^1 = 31.4 * 10^-1】
  • 布尔型
    • C99 中也引⼊了 布尔类型 ,是专门表示真假的。
    • 布尔类型的使用得包含头⽂件 <stdbool.h>
    • 布尔类型变量的取值是:true或者false。

自定义类型【自己来创建类型】

  • 数组
  • 结构体 - struct
  • 枚举 - enum
  • 联合体 - union

取值范围

  • limits.h 文件中说明了整型类型的取值范围
  • float.h 这个头文件中说明浮点型类型的取值范围
  • SCHAR_MINSCHAR_MAXsigned char 的最小值和最大值
  • INT_MININT_MAXint 的最小值和最大值
  • LONG_MINLONG_MAXlong 的最小值和最大值
  • LLONG_MINLLONG_MAXlong long 的最小值和最大值
  • UCHAR_MAXunsigned char 的最大值
  • USHRT_MAXunsigned short 的最大值
  • UINT_MAXunsigned int 的最大值
  • ULONG_MAXunsigned long 的最大值
  • ULLONG_MAXunsigned long long 的最大值

变量

变量的创建

  • 类型是用来创建变量的,
  • C语言中把经常变化的值称为变量,不变的值称为常量。

变量创建的语法形式

data_type name;|		||		|
数据类型    变量名     int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量

变量在创建的时候就给⼀个初始值,就叫初始化

变量的分类

全局变量

  • 在大括号外部定义的变量就是全局变量。
  • 全局变量的使用范围更广,整个工程中想使用,都是有办法使用的。

局部变量

  • 在大括号内部定义的变量就是局部变量。
  • 局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。

栈区、堆区、静态区

  • 局部变量是放在内存的栈区
  • 全局变量是放在内存的静态区
  • 堆区是用来动态内存管理的。

算术操作符

  • 算术操作符分别是: + - * \ % ,都是双目操作符
  • 除法 \
    • 除号的两端如果是整数,执行的是整数除法结果也是整数
    • C 语言里面的整数除法是整除,只会返回整数部分,丢弃小数部分。
    • 若要得到浮点数结果,两个运算数必须至少有⼀个浮点数
  • 求模 %
    • 返回两个整数相除的余值。
    • 运算符只能用于整数,不能用于浮点数。
    • 负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定

赋值操作符

  • 在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值
  • 赋值操作符 = 是⼀个随时可以给变量赋值的操作符。

连续赋值

int a = 3;
int b = 5;
int c = 0;
c = b = a+3;//连续赋值,从右向左依次赋值的。

复合赋值符

int a = 10;
a += 3;	//复合赋值
a -= 2;	//复合赋值

单目操作符:++、–、+、-

  • 操作符只有⼀个操作数,被称为单目操作符。
  • ++ 是⼀种自增的操作符,又分为前置 ++ 和后置 ++
    • 前置 ++ :先 +1,后使用;
    • 后置 ++ :先使用,后 +1。
  • -- 是⼀种自减的操作符,也分为前置 -- 和后置 --
  • +是正号, - 是负号,都是单目操作符。
  • 运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。
  • 运算符 - 用来改变⼀个值的正负号。

强制类型转换

int a = 3.14;
//a的是int类型, 3.14是double类型,两边的类型不⼀致,编译器会报警告
为了消除这个警告,我们可以使用强制类型转换:
int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
http://www.lryc.cn/news/142483.html

相关文章:

  • 分布式训练 最小化部署docker swarm + docker-compose落地方案
  • QT学习笔记-开发环境编译Qt MySql数据库驱动与交叉编译Qt MySql数据库驱动
  • QT使用QXlsx实现数据验证与Excel公式操作 QT基础入门【Excel的操作】
  • renrenfast Vue2 打包发布
  • NoSQL数据库介绍+Redis部署
  • 【mindspore学习】环境配置
  • 基于shell脚本对aliyun npm仓库(https://packages.aliyun.com)登录认证
  • K8s Pod 安全认知:从openshift SCC 到 PSP 弃用以及现在的 PSA
  • 提高企业会计效率,选择Manager for Mac(企业会计软件)
  • 软考:中级软件设计师:信息系统的安全属性,对称加密和非对称加密,信息摘要,数字签名技术,数字信封与PGP
  • Vue3中reactive响应式失效的问题
  • lamp
  • LeetCode 周赛上分之旅 #42 当 LeetCode 考树上倍增,出题的趋势在变化吗
  • Qt 自定义菜单 托盘菜单
  • channel并发编程
  • 苹果新健康专利:利用 iPhone、Apple Watch 来分析佩戴者的呼吸情况
  • 数据分析基础-数据可视化02-不同数据类型的可视化概念及原则
  • QT项目使用Qss的总结
  • suricata初体验+wireshark流量分析
  • 机器学习:异常检测实战
  • 数据结构1
  • 自然语言处理学习笔记(七)————字典树效率改进
  • forEach和map有什么区别,使用场景?
  • 【Spring Boot】SpringBoot完整实现社交网站系统
  • Modbus转Profinet网关连接三菱变频器博图快速配置
  • 8.9 【C语言】有关指针的小结
  • WordPress Nginx伪静态规则设置以及二级目录规则
  • 2023年高教社杯 国赛数学建模思路 - 复盘:人力资源安排的最优化模型
  • React内置函数之startTransition与useTransition
  • 观察者模式简介