C语言-变量常量数据类型
常量:不会变化的数据。不能被修改。
1. “hello”、'A'、-10、3.1415926(浮点常量)
2. #define PI 3.1415 【强调】:没有分号结束标记。 【推荐】 定义宏: 定义语法: #define 宏名 宏值
3. const int a = 10; 定义语法:const 类型名 变量名 = 变量值。
const关键字: 被该关键字修饰的变量,表示为只读变量。
变量:会变化的数据。能被修改。
定义语法:类型名 变量名 = 变量值。(一般方法)
变量三要素:类型名、变量名、变量值。 int r = 3; float s = PI*r*r;(变量值是一个表达式)
变量的定义: int a = 40;
变量的声明: 1) int a; 没有变量值的变量定义 叫做声明。
2)extern int a; 添加了关键字 extern。
1. 变量定义会开辟内存空间。变量声明不会开辟内存空间。
2. 变量要想使用必须有定义。
当编译器编译程序时,在变量使用之前,必须要看到变量定义。如果没有看到变量定义,编译器会自动找寻一个变量声明提升成为定义。
如果该变量的声明前有 extern 关键字,无法提升。
【建议】:定义变量时。尽量不要重名。
标识符:
变量和常量的统称。
命名规则: 1. 通常常量使用大写、变量使用小写。大小写严格区分。
2. 只能使用字母、数组、下划线(_)命名标识符。且,数字不能开头。 a-z/A-Z/0-9/_
int a5ir = 10; ok
int _34F = 6; ok
float s2_i85c = 5.4; ok
int 98ti_54 = 4; error.
3. 禁止使用关键字和系统函数作为标识符名称。 main/system/printf/sleep....
sizeof关键字:
不是函数。用来求一个变量、类型的大小。 返回一个 无符号整数。 使用 %u 接收返回值。
方法1: sizeof(类型名) -- sizeof(int)
方法2: sizeof(变量名) --- int a = 20; sizeof(a)
【了解】: sizeof 变量名/类型名 举例1: sizeof int
举例2: sizeof a
有符号整型:
signed: 有符号 (超级不常用, 通常省略): int a = 10; a = -7;
int类型: %d 4 字节
int 名 = 值;
short类型: %hd 2 字节
short 名 = 值; short s1 = 3;
long类型: %ld 4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节)
long 名 = 值; long len = 6;
long long 类型:%lld 8 字节
long long 名= 值; long long llen = 70;
无符号整型:
unsigned: 无符号 只表示数据量,而没有方向(没有正负)
unsigned int类型: %u 4 字节
unsigned int 名 = 值;
unsigned int a = 40;
unsigned short类型: %hu 2 字节
unsigned short 名 = 值;
unsigned short s1 = 3;
unsigned long类型: %lu 4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节)
unsigned long 名 = 值;
unsigned long len = 6;
unsigned long long 类型:%llu 8 字节
unsigned long long 名 = 值;
unsigned long long llen = 70;
char字符类型:1字节
存储一个字符。本质是ASCII码。 ‘A’、‘a’、‘%’、‘#’、‘0’
格式匹配符: %c
‘A’:65
‘a’:97
‘0’:48
‘\n’:10
‘\0’: 0
转义字符:
‘\’ 将普通字符转为 特殊意。 将特殊字符转为本身意。
'\n' 和 ‘\0’
实型(浮点数、小数):
float: 单精度浮点型。 4字节
float v1 = 4.345;
%f格式匹配符。 默认保留 6 位小数。
double:双精度浮点型。 8字节 【默认】
double v2 = 5.678;
unsigned float v1 = 4.345; 无符号的 float 数据
unsigned double v2 = 5.678; 无符号的 float 数据
printf("n = %08.3f\n", n);
输出的含义为:显示8位数(包含小数点), 不足8位用0填充。并且保留3位小数。对第4位做四舍五入。
进制和转换:
十进制转2进制。 --- 除2反向取余法。 【重点】
十进制转8进制。 --- 除8反向取余法。
十进制转16进制。--- 除16反向取余法。
int a = 56; -- 111000
int b = 173; -- 10101101
2进制转10进制。
2^10 = 1024
2^9 = 512
2^8 = 256
2^7 = 128
2^6 = 64
2^5 = 32
2^4 = 16
2^3 = 8
2^2 = 4
8进制:
8进制转10进制。
定义8进制数语法:
056: 零开头,每位数0~7之间。 ---- 46
0124: ---- 84
8进制转2进制。
按421码将每个八进制位展开。
056:5--》 101。 6--》 110 。
101110
05326:5 --》 101。 3--》 011。 2--》 010。 6--》 110
2进制转8进制:
1 010 111 010 110: 012726
自右向左,每3位一组,按421码转换。高位不足三位补0
16进制:
语法: 以0x开头,每位 取 0-9/A-F/a-f
A -- 10
B -- 11
C -- 12
D -- 13
E -- 14
F -- 15
16 -- 10:
0x1A: 16+10 = 26
0x13F:15+3x16+256
16 -- 2:
0x1A: 00011010
0x13F: 000100111111
2 -- 16:
0001 0011 1111: 13F
自右向左,每4位一组,按8421码转换。高位不足三位补0
总结:
int m = 0x15F4;
int n = 345;
int var = 010011; // 不允许。 不能给变量直接复制 二进制数据。
输出格式:
%d %u %o %x %hd %hu %ld %lu %lld %llu %c %f %lf
%d %u %x %c %s
存储知识:
1 bit位 就是一个 二进制位
一个字节 1B = 8bit位。
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
源码反码补码:【了解】
源码:
43 -> 00101011
-43 --> 10101011
反码:
43 -> 00101011
-43 --> 10101011
11010100
补码:(现今计算机采用的存储形式)
43 -> 00101011 : 正数不变
-43 --> 11010101 : 负数,最高位表符号位, 其余取反+1
43-27 ==》 43 + -27
人为规定: 10000000 --》 -128
-------------------------------------------------
char 类型:1字节 8个bit位。 数值位有7个。
有符号: -2^7 --- 2^7-1 == -2^(8-1) -- 2(8-1) -1
--》 -128 ~ 127
无符号: 0 ~ 2^8 -1
--》 0~255
不要超出该数据类型的存储范围。
short类型:2字节 16bit
有符号: -2^15 --- 2^15-1 == -2^(16-1) -- 2(16-1) -1
--》 -32768 ~ 32767
无符号: 0 ~ 2^8 -1
--》 0~65535
int 类型:4字节 -2^(32-1) -- 2^(32-1)-1
有符号:
--》 -2147483648 ~ 2147483647
无符号: 0~2^32 -1
--》 0~4294967295
long类型:4字节
有符号:
--》 -2147483648 ~ 2147483647
无符号: 0~2^32 -1
--》 0~4294967295
longlong 类型:8字节
有符号:
--》 -2^(63) ~ 2^(63)-1
无符号:
--》 0~2^63-1
C语言-变量常量数据类型的更多相关文章
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...
- python---01.各类计算机语言,python历史,变量,常量,数据类型,if条件
一.认识计算机 1.硬件组成: CPU(大脑) + 内存(缓冲) + 主板(连接各部分) + 电源(心脏) + 显示器 + 键盘 +鼠标+ 显卡 + 硬盘 2.操作系统 ①windows ...
- [C语言] 变量和数据类型和整数和字符
1.数据类型和变量: 数据是放在内存中的,明确三件事:数据存储在哪里.数据的长度以及数据的处理方式 int n;数据类型指明了数据的长度和处理方式,变量名指明了数据存储在哪里 2.数据长度:是指数据占 ...
- (4)C#变量,常量,数据类型,转义字符,数据类型转换
一.变量 程序运行期间能够被改变的量称为变量. 变量名称要用小写字母开头,避免用下划线开头. 如果包含多个单词,从第二个单词开始首字母都要大写. 定义并初始化 double pi = 3.14 二.常 ...
- Java - 变量常量数据类型
标识符命名规范 可以有字母数字下划线和美元符组成, hello abc 不能以数字开头 123abc 严格区分大小写 void Void 不能是java的关键字和保留字 class 标识符必须是见名知 ...
- Dart学习笔记-变量常量数据类型
变量和常量 1.变量的定义 main() { var t_str = 'hello world'; var t_num = 123456; String t_str2 = '你好,我很高兴'; int ...
- 27 JavaScript的引入&注释&弹窗&变量常量&数据类型及转换&内存&垃圾回收
JS的引入: 1 内部引入 绑定元素事件如onclick="" 绑定锚点如href="JavaScript:void(0)" script标签引入,注意:如果标 ...
- [编程] C语言变量和数据类型总结练习题
练习题: 1) 如何用 printf() 输出 short.int.long 类型的整数,请举例说明. 2) 如何用 printf() 输出 float.double 类型的小数,请举例说明. 3) ...
- Java复习3.变量.常量.String.
Java 中的变量常量数据类型 20131004 前言: 还是国庆节,无聊的很,就没事复习点Java的知识,其实C/C++基本上是现在大型企业面试的语言,但是多学习点Java是没有坏处的,而且,将来工 ...
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...
随机推荐
- redis集群:MASTER aborted replication with an error: NOAUTH Authentication required.
发现个问题:redis集群所在服务器,磁盘空间很快就被占满,使用 "du -sh *"查看每个文件夹的大小,发现redis集群三个从节点的日志文件占用空间很大. 下面记录问题排查及 ...
- 记录一次解决数据库连接池连接泄露BUG
1 BUG现象 系统并发请求,系统停滞无法使用,所有接口都是无法与后端进行交互的状态,系统并没有宕机 2 BUG的业务流程 插入分数方法 涉及插入表ABCD 加了声明式事务 查询分数方法 涉及表ABC ...
- Lithosphere是什么,它解决什么问题?
这问题很好,一针见血,它解决什么问题? 那这得说说,在IoT应用中,我们会碰到什么问题? 和纯软件项目,互联网项目比,IoT应用项目一个比较大不同的地方,应该是它既要做软件,又要做硬件. 我并不是硬件 ...
- Linux 网络发包流程
哈喽大家好,我是咸鱼 之前咸鱼在<Linux 网络收包流程>一文中介绍了 Linux 是如何实现网络接收数据包的 简单回顾一下: 数据到达网卡之后,网卡通过 DMA 将数据放到内存分配好的 ...
- 04.使用 github actions+docker 自动部署前后端分离项目 zhontai (.net core+vue)
前言 Github Actions是什么?是 GitHub 提供的一种持续集成/持续部署(CI/CD)工作流程自动化服务,助力项目的自动化构建.测试和部署. 依托于平台,本文将分享使用 GitHub ...
- HTML一键打包IPA(苹果IOS应用)工具 网站打包 APP
工具简介 HTML一键打包IPA(苹果应用)工具可以把本地HTML项目或者网站打包为一个苹果应用IPA文件,无需编写任何代码,支持在苹果设备上安装运行. 该软件已经被GDB苹果网页一键打包工具取代,详 ...
- 15.3K Star,超好用的开源协作式数字白板:tldraw
大家好,我是TJ 今天给大家推荐一个开源协作式数字白板:tldraw. tldraw的编辑器.用户界面和其他底层库都是开源的,你可以在它的开源仓库中找到它们.它们也在NPM上分发,提供开发者使用.您可 ...
- SQL查询中的小技巧:SELECT 1 和 LIMIT 1 替代 count(*)
前言 在写SQL查询时,常规做法是使用SELECT count(*)来统计符合条件的记录数. 然而,在某些情况下,我们只关心是否存在符合条件的记录,而不需要知道具体的记录数. 为了优化性能,可以改用使 ...
- WebAssembly实践指南——C++和Rust通过wasmtime实现相互调用实例
C++和Rust通过wasmtime实现相互调用实例 1 wasmtime介绍 wasmtime是一个可以运行WebAssembly代码的运行时环境. WebAssembly是一种可移植的二进制指令集 ...
- WPF中以MVVM方式,实现RTSP视频播放
前言视频播放在上位机开发中经常会遇到,基本上是两种常见的解决方案 1.采用厂家提供的sdk和前端控件进行展示,常见的海康/大华都提供了相关sdk及文档 2.开启相机onvif协议,捅过rtsp视频流进 ...