常量:不会变化的数据。不能被修改。

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语言-变量常量数据类型的更多相关文章

  1. Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)

    初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...

  2. python---01.各类计算机语言,python历史,变量,常量,数据类型,if条件

    一.认识计算机 1.硬件组成: CPU(大脑)  + 内存(缓冲) + 主板(连接各部分) + 电源(心脏)      + 显示器 + 键盘 +鼠标+ 显卡 + 硬盘 2.操作系统 ①windows  ...

  3. [C语言] 变量和数据类型和整数和字符

    1.数据类型和变量: 数据是放在内存中的,明确三件事:数据存储在哪里.数据的长度以及数据的处理方式 int n;数据类型指明了数据的长度和处理方式,变量名指明了数据存储在哪里 2.数据长度:是指数据占 ...

  4. (4)C#变量,常量,数据类型,转义字符,数据类型转换

    一.变量 程序运行期间能够被改变的量称为变量. 变量名称要用小写字母开头,避免用下划线开头. 如果包含多个单词,从第二个单词开始首字母都要大写. 定义并初始化 double pi = 3.14 二.常 ...

  5. Java - 变量常量数据类型

    标识符命名规范 可以有字母数字下划线和美元符组成, hello abc 不能以数字开头 123abc 严格区分大小写 void Void 不能是java的关键字和保留字 class 标识符必须是见名知 ...

  6. Dart学习笔记-变量常量数据类型

    变量和常量 1.变量的定义 main() { var t_str = 'hello world'; var t_num = 123456; String t_str2 = '你好,我很高兴'; int ...

  7. 27 JavaScript的引入&注释&弹窗&变量常量&数据类型及转换&内存&垃圾回收

    JS的引入: 1 内部引入 绑定元素事件如onclick="" 绑定锚点如href="JavaScript:void(0)" script标签引入,注意:如果标 ...

  8. [编程] C语言变量和数据类型总结练习题

    练习题: 1) 如何用 printf() 输出 short.int.long 类型的整数,请举例说明. 2) 如何用 printf() 输出 float.double 类型的小数,请举例说明. 3) ...

  9. Java复习3.变量.常量.String.

    Java 中的变量常量数据类型 20131004 前言: 还是国庆节,无聊的很,就没事复习点Java的知识,其实C/C++基本上是现在大型企业面试的语言,但是多学习点Java是没有坏处的,而且,将来工 ...

  10. [Java入门笔记] Java语言基础(二):常量、变量与数据类型

    常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...

随机推荐

  1. vscode c++食用指南

    准备 配置环境为机房的 win10. 首先你需要下载 vscode. 可以从官网下载:https://code.visualstudio.com/Download 配置编译c++ 下载完之后安装好,界 ...

  2. [mysql]安全加固

    前言 因等保安全的要求,需要对MySQL用户密码和登录策略进行安全加固,以满足以下需求: 密码至少8位,包含大小写字母.数字和特殊字符. 当密码登录失败一定次数后锁定账户. 密码90天过期 本文使用的 ...

  3. 国标GB28181视频平台EasyGBS视频监控平台无法播放,抓包返回ICMP排查过程

    国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播.录像.检索与回看.语音对讲.云存储.告警.平台级联等功能.国 ...

  4. 深入理解Linux内核——内存管理(2)

    提要:本系列文章主要参考MIT 6.828课程以及两本书籍<深入理解Linux内核> <深入Linux内核架构>对Linux内核内容进行总结. 内存管理的实现覆盖了多个领域: ...

  5. 入门篇-其之一-第一个Java程序

    ️注意: 本文中包含实际操作,需要安装JDK.如果需要安装JDK,请按照这篇文章的步骤进行安装:点我查看JDK安装教程 小白可以多看几遍这篇文章,多敲几次代码 前面我们已经安装了JDK,接下来就是写一 ...

  6. Remix-Ethereum IDE连接本地详解

    Remix-Ethereum IDE连接本地 ​ 由于在学习和做项目的过程中,很多人用的都是网页版的Remix,而在网页中的代码是存储在缓存中的,在使用过程中容易丢失,所以将Remix与本地文件连接起 ...

  7. Vue.js 官方脚手架 create-vue 是怎么实现的?

    Vue.js 官方脚手架 create-vue 是怎么实现的? 摘要 本文共分为四个部分,系统解析了vue.js 官方脚手架 create-vue 的实现细节. 第一部分主要是一些准备工作,如源码下载 ...

  8. mpi转以太网连接300PLC与施耐德 Quantum PLC 通讯

    S7300 PLC转以太网无需编程与施耐德 Quantum PLC modbusTCP通信 方案介绍: 西门子300PLC转以太网不需要编写程序通过兴达易控MPI-ETH-XD1.0与施耐德 Quan ...

  9. xftp 7必须更新最新版本怎么解决

    下载可以查看16进制的软件: Sublime Text 运行XFTP7 双击打开是:这样的 解决方案 用Sublime Text进行打开nslicense.dll, 打开之后查找"0f88 ...

  10. .NET应用如何防止被反编译

    前言 前段时间分享了两篇关于.NET反编译相关的文章,然后文章留言区就有小伙伴提问:如何防止被反编译?因此本篇文章我们就来讲讲.NET应用如何防止被反编译..NET反编译相关的文章可以看如下文章: 4 ...