C语言—数据类型
变量和基本数据类型
变量类型的概念
变量是在程序中可以发生变化的量,变量是有类型的,变量的类型决定了变量存储空间的大小以及如何解释存储的位模式。
1字节(Byte)=8位(bit)
定义格式
存储类型 数据类型 变量名;
例如:
(auto) int a;
存储类型:
auto、static、register、extern
变量名:
是标识符,要遵循标识符命名规则
数据类型:
包含名称、大小(单位字节)和取值范围
char、short、int、long、float、double、signed、unsigned
类型 | 存储大小 | 值范围 | |
char | 字符类型 | 1字节 | -2^7 ~ 2^7-1 |
unsigned char | 无符号字符类型 | 1字节 | 0 ~ 2^8-1 |
int | 整数类型 | 4字节 | -2^31 ~ 2^31-1 |
unsigned int | 无符号整数类型 | 4字节 | 0 ~ 2^32-1 |
short | 短整型 | 2字节 | -2^15 ~ 2^15-1 |
unsigned short | 无符号短整型 | 2字节 | 0 ~ 2^16-1 |
long | 长整型 | 4字节 | -2^31 ~ 2^31-1 |
unsigned long | 无符号长整型 | 4字节 | 0 ~ 2^32-1 |
float | 单精度浮点型 | 4字节 | 有效数据到小数点后6~7位 |
double | 双精度浮点型 | 8字节 | 有效数据到小数点后15~16位 |
例如:
int c=10,d=10; float a=33.33333333; double b=33.33333333; printf("%f\n%lf\n%d %d\n",a,b,c,d);
输出结果为:
33.333332
33.333333
10 20
初始化格式
定义时初始化
int a=10;
先定义再初始化
int a;
a=10;
局部变量和全局变量
相关概念
生命周期
变量的生命周期是指变量从创建到销毁之间的一个时间段,也就是存活的周期,是时间维度。
作用域
作用域是指变量可以起作用的范围,是空间维度。
内存分区
全局变量和局部变量的区别:
局部变量 全局变量 定义位置 函数体内部 函数体外部 存储位置 栈区 全局区 生命周期 同函数体共存亡 同整个程序共存亡 作用域 作用于函数体内部 作用于整个程序 初值 未初始化时是随机值 未初始化时是0 #include <stdio.h> #include <stdlib.h>int n1; int mai(int args,char const *argv[]) {int nn2;printf("%d %d\n",n1,n2);return 0; }
输出结果为:
0 7153974
常量
概念
程序运行过程中不会发生改变的量叫做常量,常量存放在常量区。
分类
字符型常量
字符型常量属于char类型,从ASCII码表里面能找到的都是字符型常量,用单引号括起来表示,不可以改变,例如:‘A’ 。
类型 | 存储大小 | 值范围 | |
char | 字符类型 | 1字节 | -128 ~ 127 |
unsigned char | 无符号字符类型 | 1字节 | 0 ~ 255 |
signed char | 有符号字符类型 | 1字节 | -128 ~ 127 |
原码、补码和反码
最高位表示符号位,正数是0,负数是1
正数的原码、补码、反码都一样
负数要用补码来计算:
原码:在数值前面直接加符号位表示
反码:符号位不变,其他位按原码取反
补码:反码加一
例如:
-5:
原码:1000 0101
反码:1111 1010
补码:1111 1011
用‘’(单引号)括起来的就是字符型常量:
‘a’ 字符a
‘\0’ 空字符
‘\n’ 换行符
例如:
char c='a';//把字符常量a赋值给字符型变量 printf("%c\n",'A'); printf("%c\n",66); printf("%c\n",'\x42');//十六进制的ASCII码值表现形式 printf("%c\n",'\102');//八进制的ASCII码值表现形式 printf("%c\n",c); printf("%c\n",'A'+32); printf("%c\n",'A'+' '); printf("%c\n",'A'+1);
补充:
在C语言中规定转义字符 ‘\x41’ 中的 \ 是转义字符引导符,后面跟一个x,表示x后面的数字是十六进制表示法,用 ‘’(单引号)括起来表示字节ASCII码值。转义字符 \ 后面直接加数字表示转义字符后面的数字是八进制表示法,代表转义成八进制的字符。
字符串常量
用 “”(双引号)括起来的就是字符串,字符串后面会自动加上一个 ‘\0’ ,表示字符串结束 。
例如:
“hello” 字符串结尾有一个 ‘\0’
printf("hello\n");
printf("%s","hello");
整型常量
整型常量是类型为整数的常量,包括从负数到零到正数所有的整数,可以用二进制、八进制、十进制、十六进制表示。
例如:
int a=15;//把整数常量赋值给整数变量 printf("%d\n",a); printf("%d\n",0b1111);//二进制输出15 printf("%d\n",017);//八进制输出15 printf("%d\n",15);//十进制输出15 printf("%d\n",0xF);//十六进制输出15
以上输出的结果都是15
浮点型常量
浮点型常量就是为浮点数的常量,包括从负数到零到正数所有的浮点数。
数据类型有float和double。
指数常量
指数常量就是用科学计数法表示的常量。
例如:
300000 = 3*10^5 = 3e+5
0.0000002 = 2*10^-7 = 2e-7
标识符常量(宏定义)
宏定义:起标识符的作用
单纯的文本替换,在预处理的时候进行。
必须遵循标识符的命名规则。
一般大写标识。
格式:#define 宏名 常量或表达式
特点:只能单纯的文本替换,不要进行手动运算,(原样替换,替换完再进行计算)。
#include <stdio.h>
#include <stdlib.h>#define ONE
#define TWO ONE+ONE
#define MORE TWO+ONE+ONE+ONE+ONE+ONE+ONE
#define HELLO "Hello"int main(int argc,char const *argv[])
{printf("%d\n",MORE);printf("%s\n",HELLO);
}
如果一个串长于一行,可在行尾用反斜杠 ‘\’ 进行续行
#define N 2
#define M N+3 //2+3
#define NUM N+M/2+1 //2+2+3/2+1 = 6
void main()
{int a=NUM;printf("%d\n",a); //6
}
相关文章:
C语言—数据类型
变量和基本数据类型 变量类型的概念 变量是在程序中可以发生变化的量,变量是有类型的,变量的类型决定了变量存储空间的大小以及如何解释存储的位模式。 1字节(Byte)8位(bit) 定义格式 存储类型 数据…...
静态网页设计——多彩贵州(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)
前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频:https://www.bilibili.com/video/BV1cK411v7R2/?vd_source5f425e0074a7f92921f53ab87712357b 源码:https://space.bilibili.com…...
unity PDFRender Curved UI3.3
【PDF】PDFRender 链接:https://pan.baidu.com/s/1wSlmfiWTAHZKqEESxuMH6Q 提取码:csdn 【曲面ui】 Curved UI3.3 链接:https://pan.baidu.com/s/1uNZySJTW0-pPwi2FTE6fgA 提取码:csdn...
基于深度学习的停车位关键点检测系统(代码+原理)
摘要: DMPR-PS是一种基于深度学习的停车位检测系统,旨在实时监测和识别停车场中的停车位。该系统利用图像处理和分析技术,通过摄像头获取停车场的实时图像,并自动检测停车位的位置和状态。本文详细介绍了DMPR-PS系统的算法原理、…...
C#,入门教程(09)——运算符的基础知识
上一篇: C#,入门教程(08)——基本数据类型及使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123906998 一、算术运算符号 算术运算符号包括:四则运算 加 , 减-, 乘*, 除/与取模%。 // 加法,运算 int va 1 …...
企业出海数据合规:GDPR中的个人数据与非个人数据之区分
GDPR仅适用于个人数据,这意味着非个人数据不在其适用范围内。因此,个人数据的定义是一个至关重要的因素,因为它决定了处理数据的实体是否要遵守该法规对数据控制者规定的各种义务。尽管如此,什么是个人数据仍然是当前数据保护制度…...
如何在Ubuntu搭建Emlog博客站点并发布至公网可随时远程访问管理界面——“cpolar内网穿透”
文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总结 前言 博客作为使…...
【金猿CIO展】是石科技CIO侯建业:算力产业赋能,促进数字经济建设
侯建业 本文由是石科技CIO侯建业撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 是石科技(江苏)有限公司成立于2021年,由国家超级计算无锡中心与…...
TypeScript 类
目录 1、实例 2、创建类的数据成员 3、创建实例化对象 4、完整实例 5、类的继承 6、继承类的方法重写 7、static关键字 8、instanceof运算符 9、访问控制修饰符 10、类和接口 TypeScript 是面向对象的 JavaScript。类描述了所创建的对象共同的属性和方法。支持面向对…...
Oracle分区表
文章目录 A. varchar2类型时间字段(20240102)分区实战1. 表要不要分区2. 将已经存在的表改造为分区表(时间字段,varchar2类型)3. 增加分区3.1 增加分区3.2 置换分区,不会复制索引,不要用这种语法建表,这是专门为置换分区用的3.3 分…...
【leetcode】力扣算法之旋转图像【难度中等】
题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 用例 输入: matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&…...
【Java集合类篇】HashMap的数据结构是怎样的?
HashMap的数据结构是怎样的? ✔️HashMap的数据结构✔️ 数组✔️ 链表 ✔️HashMap的数据结构 在Java中,保存数据有两种比较简单的数据结构: 数组和链表(或红黑树)。 HashMap是 Java 中常用的数据结构,它实现了 Map 接口。Has…...
Spring 应用合并之路(一):摸石头过河 | 京东云技术团队
公司在推进降本增效,在尝试多种手段之后,发现应用太多,每个应用都做跨机房容灾部署,则最少需要 4 台机器(称为容器更合适)。那么,将相近应用做一个合并,减少维护项目,提高…...
Android13配置selinux让system应用可读sys,proc,SN号
system权限应用读sys,proc目录及SN号 Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错. 其修改方法会比Android11复杂一些. 实现 system_app.te中添加…...
防勒索病毒攻击的关键措施
【作者】朱向东 中原银行 高级工程师 在当今数字化时代,勒索病毒成为了企业和个人面临的一项严峻威胁。勒索病毒攻击可以导致数据丢失、系统瘫痪以及经济损失。为了保护自己和组织的利益,采取一系列的防范措施是至关重要的。下面是一些关键的措施&#…...
代表团坐车 - 华为OD统一考试
OD统一考试(B卷) 分值: 100分 题解: Java / Python / C++ 题目描述 某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案输出方案数量。 约束: 一个团只能上一辆车,并且代表团…...
运用Jmeter进行登录测试
开始了解Jmeter,写篇关于Jmeter的博客做备忘,这里以苏宁易购网站的登录请求为例实战来说明测试计划元件,创建一个 Web 测试计划。 今天简单介绍Jemeter的入门,Jmeter 的安装这边就跳过,直接讲述如何使用JMETER,如何运用Jmeter进行测试。 a.下载jmeter软件 b.安装…...
Docker学习与应用(四)-容器数据卷
1、容器数据卷 1)什么是容器数据卷 docker的理念回顾 将应用和环境打包成一个镜像! 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化 MySQL,容器删…...
CentOS 7.6下HTTP隧道代理的安全性考虑
在CentOS 7.6上配置HTTP隧道代理时,安全性是一个不可忽视的重要因素。以下是对HTTP隧道代理安全性的一些关键考虑因素: 1. 加密和数据安全 使用强加密算法:确保您使用的是经过广泛认可和强化的加密算法,如AES-256-GCM。数据完整…...
Mockito+junit5搞定单元测试
目录 一、简介1.1 单元测试的特点1.2 Mock类框架的使用场景1.3 常见的Mock框架1.3.1 Mockito1.3.2 EasyMock1.3.3 PowerMock1.3.4 Testable1.3.5 比较 二、Mockito的使用2.1 导入pom文件2.2 mock对象和spy对象2.3 初始化mock/spy对象的方式2.4 参数匹配2.5 方法插桩2.6 InjectM…...
PostgreSQL获取当天、昨天、本月、上个月、本年、去年的数据
gps_time为timestamp类型日期字段 获取当天的数据 WHERE DATE_TRUNC(day, gps_time) CURRENT_DATE --或 WHERE DATE(gps_time) CURRENT_DATE获取昨天的数据 WHERE DATE_TRUNC(day, gps_time) CURRENT_DATE - INTERVAL 1 day获取本月的数据 WHERE DATE_TRUNC(month, gps_…...
XCTF:stage1[WriteUP]
从题目中下载到图片: 考虑图片是png,隐写方式有可能是高宽修改,也可能是色相隐藏,色彩通道位隐藏等等 使用stegsolve对图片进行一下伽马、颜色转换 在图片的左上角就显示出了一个二维码 使用QR_Rresearch工具对二维码扫描 获得一…...
STM32CubeMX教程13 ADC - 单通道转换
目录 1、准备材料 2、实验目标 3、ADC概述 4、实验流程 4.0、前提知识 4.1、CubeMX相关配置 4.1.1、时钟树配置 4.1.2、外设参数配置 4.1.3、外设中断配置 4.2、生成代码 4.2.1、外设初始化调用流程 4.2.2、外设中断调用流程 4.2.3、添加其他必要代码 5、常用函数…...
矩阵的乘法
首先矩阵的乘法定义如下: #include <stdio.h> int main() { int i 0; int j 0; int arr[20][20] { 0 }; int str[20][20] { 0 }; int s[20][20] { 0 }; int n1 0; int n2 0; int m2 0; int z 0; int m1 0;…...
python爬取招聘网站数据
这段代码是使用Selenium自动化测试模块进行网页爬取的示例代码。它通过模拟人的行为在浏览器中操作网页来实现爬取。具体的流程如下: 导入所需的模块,包括Selenium、时间、随机、csv等模块。打开浏览器,创建一个Chrome浏览器实例。设置要爬取…...
灌区信息化方案(什么是现代化灌区,如何一步到位)
一、系统概述 详情:https://www.key-iot.com.cn/ 本灌区信息化方案以星创易联公司的各类智能设备为基础,通过其产品完成水文、雨情、土壤等多源异构数据的采集,以无线自组网的方式实现数据传输,并在后台管理中心建立信息化软件平台,对数据进行融合处理。系统实现对…...
jmeter自动录制脚本功能
问题排查: 建议用 google浏览器; 重启一下jmeter; 过滤规则重新检查下; 看下代理设置是否正常; 注意:下面的的过滤设置中 用的都是正则表达式的规则。...
十一、工具盒类(MyQQ)(Qt5 GUI系列)
目录 编辑 一、设计需求 二、实现代码 三、代码解析 四、总结 一、设计需求 抽屉效果是软件界面设计中的一种常用形式,可以以一种动态直观的方式在有限大小的界面上扩展出更多的功能。本例要求实现类似 QQ 抽屉效果。 二、实现代码 #include "dialog.…...
postgresql 查询字段 信息
SELECT base.“column_name”, col_description ( t1.oid, t2.attnum ), base.udt_name, COALESCE(character_maximum_length, numeric_precision, datetime_precision), (CASE WHEN ( SELECT t2.attnum ANY ( conkey ) FROM pg_constraint WHERE conrelid t1.oid AND contyp…...
antv/x6_2.0学习使用(四、边)
一、添加边 节点和边都有共同的基类 Cell,除了从 Cell 继承属性外,还支持以下选项。 属性名类型默认值描述sourceTerminalData-源节点或起始点targetTerminalData-目标节点或目标点verticesPoint.PointLike[]-路径点routerRouterData-路由connectorCon…...
网站分成几种类型/网站推广优化网址
TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类:TFileStream: 文件流TStringStream: 字符串流TMemoryStream: 内存流TResourceStream: 资源文件流THandleStream: 是 TFileStream 的父类、TStream 的子类TCustomMemoryStream: 是 TMemoryStre…...
深圳人才网官方网站/逆冬黑帽seo培训
一.贪心算法1 问题描述 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场.设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题,若将每一个活动作为图的一个顶点,不相容活动间用边相连,使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数…...
政府门户网站建设调研/seo营销优化软件
原标题:最客观的英语口语APP亲身测评,这3款软件让你的口语脱颖而出英语口语APP 现在市面上各类APP百花齐放,英语口语学习类APP也是不甘示弱,坐在家里、走在路上、坐公交车的时候,随时随地打开手机就可以练习口语。今天…...
wordpress国旗/软文技巧
Python作为一门较为灵活的解释型脚本语言,其中定义的main()函数只有当该Python脚本直接作为执行程序时才会执行;当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。这是由于两方面原因,一方面&#…...
java怎么自学/seo是指什么职位
1.已有类为partial,部分类(public partial class User) 2.设计类为partial,添加嵌套类(private class MetaUser),嵌套类设计已有类字段 3.设计类添加[MetaDataType(typeof(MetaUser))] public p…...
做营销型网站费用/百度网盘资源搜索引擎
MyBatis SqlSessionFactory和SqlSession 一,SqlSessionFactory Mybatis提供了构造器SqlSessionFactoryBuilder来生成SqlSessionFactory。 在 MyBatis 中,既可以通过读取配置的 XML 文件的形式生成 SqlSessionFactory,也可以通过Java代码生…...