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

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. 集训后的一些wp

    新生赛后 0x01 2048(jk出发) 修改跳转条件为nop,随便动一下直接打印flag.这个场景我幻想过很久了,一直没做到,这次参考wp做出来了知道怎么做了.学到! 0x02 four(dsact ...

  2. python 运行环境变为 pytest in (for) xxx.py原因

    因为本人的自定义函数名称开头为test,在.py文件内我用了unittest框架,所以环境随着变化了. 修改回去很简单,只要不使用test开头或者换个文件夹.

  3. .NET API 中的 FromRoute、FromQuery、FromBody 用法

    原文链接:https://www.cnblogs.com/ysmc/p/17663663.html 最近技术交流群里,还有不少小伙伴不知道 FromRoute.FromQuery.FromBody 这 ...

  4. Vue【原创】时间轴 【time-axis】&【date-axis】

    封装了关于时间轴的组件,有时候统计页面会用到. 效果图: 时间轴分为2种,一种是time-axis:范围选择模式,一种是date-axis:步长选择模式. 代码中涉及到的工具类和图片资源,请移步页面底 ...

  5. 浅谈Mysql读写分离的坑以及应对的方案

    一.主从架构 为什么我们要进行读写分离?个人觉得还是业务发展到一定的规模,驱动技术架构的改革,读写分离可以减轻单台服务器的压力,将读请求和写请求分流到不同的服务器,分摊单台服务的负载,提高可用性,提高 ...

  6. gitlab与LDAP 联调

    gitlab整理 目录 gitlab整理 1.安装Gitlab依赖包 2.下载,安装 3.配置,访问域名及邮箱 4.初始化,启动 5.访问,以及邮箱测试 5.1汉化 6.问题总结处理 6.1安装时出现 ...

  7. 安卓APK签名注入大师(APP注入弹窗,注入打开密码,注入过期时间, 注入提示信息,一机一码)

    安卓APK签名注入大师可以给安卓APK文件一键注入APP注入弹窗,注入打开密码,注入过期时间, 注入提示信息,一机一码等功能,方便开发人员给自己的APK文件添加消息提示, 密码等功能. 可以保护文件安 ...

  8. OCI云主机环境如何上传下载文件

    OCI云主机的连接是使用密钥而非用户密码连接. 之前使用的非主流的一个SSH工具,正常连接主机都没问题,但需要手工输入用户. 可是在选择SFTP时,始终找不到用户名的设置,导致密钥连接的SFTP始终失 ...

  9. MySQL实战实战系列 06 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

    今天我要跟你聊聊 MySQL 的锁.数据库锁设计的初衷是处理并发问题.作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则.而锁就是用来实现这些访问规则的重要数据结构. 根据 ...

  10. flask出现This is a development server. Do not use it in a production deployment. Falsk WSGI两种解决办法

    WARNING: This is a development server. Do not use it in a production deployment. Falsk WSGI "这个 ...