C语言-基本数据类型
一、C语言数据类型深度剖析
1.什么是数据类型?
-可以理解为固定内存大小的别名
-数据类型是创建变量的模子
-数据类型是对内存的格式化操作
上面三句话如何理解?
在以前的汇编语言时代,我们要存储一些数据时,比如操作一个数字“32”,我们需要自己去操作实际的虚拟地址范围,需要程序员自己牢牢得把控每个内存空间的利用,这非常不方便,也容易出错,后来随着C语言的出现,有了数据类型这一提法,我们把常出现的类似2、4、8等固定大小字节的内存空间取一个别名,方便以后的操作。
如上图所示,我们用类似模子样的东西去对内存空间划分,在32位机中,"char"占1个字节,"short"占两个字节,"int"占四个字节。
2.变量的本质
通过对数据类型的了解,我们来看看变量的本质是什么?
-变量是一段实际连续存储空间的别名
-程序中通过变量来申请并命名存储空间
-通过变量的名字可以使用存储空间
实例分析1:
#include <stdio.h> int main()
{
char c = ;
short s = ;
int i = ; printf("%d, %d\n", sizeof(char), sizeof(c));
printf("%d, %d\n", sizeof(short), sizeof(s));
printf("%d, %d\n", sizeof(int), sizeof(i)); return ;
}
运行上面的代码我们发现变量跟数据类型所占有的内存空间是一致的,证实了我们的上面几点。
我们再来看看自定义数据类型跟变量的关系(即包含构造数据类型)
#include <stdio.h> typedef int INT32;
typedef unsigned char BYTE;
typedef struct _tag_ts
{
BYTE b1;
BYTE b2;
short s;
INT32 i;
} TS; int main()
{
INT32 i32;
BYTE b;
TS ts; printf("%d, %d\n", sizeof(INT32), sizeof(i32));
printf("%d, %d\n", sizeof(BYTE), sizeof(b));
printf("%d, %d\n", sizeof(TS), sizeof(ts)); return ;
}
我们发现,构造数据类型同样符合上面的解释。
C语言-基本数据类型的更多相关文章
- 谈谈C语言的数据类型
本文摘要: 本文主要讲述C语言中的数据类型,从基本的数据类型到派生的数据类型,从int ,char ,float double ....到指针,数组,函数,指向指针的指针,指向数组的指针,指向函数的指 ...
- C语言的数据类型
复习之余,做点笔记<C语言之数据类型> 一.整数数据类型 (1)整数数据类型 整数类型 char 字符型变量 1字节(8Bit) short 短整型 2字节(16Bit) i ...
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...
- 初识 go 语言:数据类型
目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...
- c语言基础:数据类型 分类: iOS学习 c语言基础 2015-06-10 21:43 9人阅读 评论(0) 收藏
C语言基本数据类型大体上分为: 整型 和 浮点型 字节: 计算机中最小的储存单位 1 Byte = 8 bit 整型: int 4 ...
- 「C语言」数据类型及混合运算与类型转换
深入学习C语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换. 本篇文章便是根据<C语言程序设计教程>和在线翻阅资料后整理而出.(练习题将逐步更新) 目录: ...
- Go语言基本数据类型(四)
Go语言基本数据类型主要包含:bool,number,string 布尔类型 go中的布尔类型,只能是 true 和 false,例如:var b bool = true 数字类型 整型 类型 描述 ...
- C语言基本数据类型大小
C语言基本数据类型占用的字节数可以通过如下例子获取: #include<stdio.h> int main(void) { printf("char size=%d \n&quo ...
- 05 C语言的数据类型
C语言的数据类型 在C 中,数据类型是用来声明不同类型的变量或函数的一个广泛的概念.变量的数据类型决定了变量存储占用的空间大小,以及如何去解释存储的位模式. C 中的数据类型可分为以下几大类: 序号 ...
- 如何制作C语言基本数据类型的思维导图
在使用C语言编写程序时,数据类型是一个非常重要的内容,任何一个不被重视的数据错误都会使编译器无法翻译,导致程序报错. 使用思维导图来梳理各个数据类型是一个很有效的记忆方法,接下来就为大家展示一下我用i ...
随机推荐
- Cesium案例解析(三)——Camera相机
目录 1. 概述 2. 实例 2.1. Camera.html 2.2. Camera.js 2.2.1. 飞行至某一点 2.2.2. 飞行至某区域 2.2.3. 两地之间飞行 2.2.4. 设置视图 ...
- 7.Android-压力测试、单元测试、日志猫使用
1.压力测试monkey 通过cmd输入下面命令: adb shell monkey -p com.example.phonecall --ignore-crashes --ignore-timeou ...
- 02-flink时间语义 与 Window 基础概念与实现原理
Flink 多种时间语义对比 Flink 在流应用程序中支持不同的 Time 概念,就比如有 Processing Time.Event Time 和 Ingestion Time.下面我们一起来看看 ...
- zerotier的下载、安装、配置与使用(win10、ubuntu)
一.需求描述 2020年,由于“野味肺炎”的影响,笔者要开始在家办公,需要远程连接公司的电脑和设备. 但是公司的网络和家里的网络不是同个局域网,不能直接用微软的远程桌面连接.想挂上公司的vpn,但是又 ...
- js内置对象的常用属性和方法(Array | String | Date | Math)
js内置对象:Array String Math Date <!DOCTYPE html> <html lang="en"> <head> ...
- EasyUI笔记(二)Layout布局
本系列只列出一些常用的属性.事件或方法,具体完整知识请查看API文档 Panel(面板) 1. 通过标签创建面板 <div id="p" class="easy ...
- C++文件处理(一):读/写txt文件
C++文件处理与C语言不同,C++文件处理使用的是:流(stream) C++头文件fstream定义了三个类型来支持文件IO
- 剑指offer-面试题55-二叉树的深度-递归
/* 题目: 二叉树的深度 */ /* 思路: 根节点高度(0或1)+左子树的深度+右子树的深度 */ #include<iostream> #include<cstring> ...
- maven的核心概念——生命周期
第十一章生命周期 11.1 什么是Maven的生命周期 ●Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了. ●Maven有三套相互独立的生命周期, ...
- private、public、this关键字
private关键字 概念:私有的,一种权限修饰符,用来修饰类的成员 特点:被修饰的成员只能在本类中访问 用法: - 1. private 数据类型 变量名: - 2. private 返回值类型 方 ...