C 碎片二 数据类型
一、概述
C 语言包含的数据类型如下图所示:

二、各种数据类型介绍
2.1 整型
整形包括短整型、整形和长整形。
2.1.1 短整形
short a=1;
2.1.2 整形
一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如0x12345678在内存中的存储如下:
地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b
数据: 78 56 34 12
定义:用int关键字,举例如下:
int a=6;
2.1.3 长整形
long a=10;
2.2 浮点型
浮点型包括单精度型和双精度型。
2.2.1 单精度型
浮点型,又称实型,也称单精度。一般占4个字节(32位),
float a=4.5;
地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b
数据: 00 00 90 40
2.2.2 双精度型
一般占8个字节(64位)
double a=4.5;
地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b 0x0012ff7c 0x0012ff7d 0x0012ff7e 0x0012ff7f
数据: 00 00 00 00 00 00 12 40
2.3 字符类型
在各种不同系统中,字符类型都占一个字节(8位)。定义如下:
char c='a';
也可以用字符对应的ASCII码赋值,如下:
char c=97;
三、常量及变量
常量:在程序运行过程中,其值不可改变的量
常量定义格式:const 类型 名称
变量:在程序运行过程中,其值可以改变的量
变量定义格式:类型 名称
基本数据类型:整型,字符型,实型(浮点型)
整型:int int = 4
长整型:long (long int) long = 8
短整型:short (short int) short = 2
实型(浮点型):
单精度:float float = 4
双精度:double double = 8
字符型:char ASCII‘1’,‘A’ char = 1
short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。
表示有无符号时需要人为指定:(默认由符号)
有符号:signed
无符号:unsigned
不写,编译器默认是有符号数
程序中的整数,默认是int,小数默认是double
变量:代表具有名字的一块存储空间
四、标识符的命名规范
1. 只能有数字,字母,下划线组成
2. 首字符不能是数字
3. 区分大小写
4. 不能是关键字(保留字),关键字是唯一代表某一个意思的字符集合
5. 习惯性命名
n、i、j 等通常作为循环变量使用
程序中不得出现仅靠大小写区分的相似的标识符 x X, o O
含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组(getAaaBbbCcc)
匈牙利命名法:变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等
作用域前缀命名规则 (global,function,auto) gAaaBbbCcc
数据类型前缀命名规则 (char,int,float,long,double,unsigned) iAaaBbbCcc
骆驼命名法(camel):当标识符由多个词组成时,第一个词的首字母小写,以后每个词的第一个字母大写,其余全部小写 aaaBbbCcc
帕斯卡命名法(pascal):当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写 AaaBbbCcc
对比:骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写
下划线分割多个词法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍 aaa_bbb_ccc
所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词
禁止使用函数名作为某一个变量名
命名应当直观且可以拼读,可望文知意,便于记忆和阅读
五、说明
1. C语言中的语句是以分号结尾的表达式
2. sizeof关键字是用来计算所占空间大小的
3. 定义变量时,若不初始化,则其值不确定
4. 定义常量时,若不初始化,则该常量无意义
因此常量定义时必须初始化。
六、隐式转换
规则:
1. 短字节向长字节看齐
2. float向double看齐
3. 整数向浮点数看齐
4. 由符号向无符号看齐
高 double(8) <—— float (4)
^ long (8)
^ unsigned(4)
低 int(4) <—— short(2) <—— char(1)
七、续
对字符的理解:计算机发明是用来处理数据的,也就是对(整型int,浮点型float,double)这些数据的处理,这些都好处理(进制转换—>二进制)直接编码。随着发展,人们向想来处理字符,但字符怎么转换成二进制,于是就又有了编码(ascii,utf-8,gbk),先把字符(汉字)或其他语言转换成数字,再将数字转换为二进制存进计算机,所以高级语言编程字符以上级别的语言都要在编译阶段转换成数字(十/八/十六进制)在汇编阶段转换成二进制最终存进计算机中。
C 碎片二 数据类型的更多相关文章
- (C/C++学习笔记) 二. 数据类型
二. 数据类型 ● 数据类型和sizeof关键字(也是一个操作符) ※ 在现代半导体存储器中, 例如在随机存取存储器或闪存中, 位(bit)的两个值可以由存储电容器的两个层级的电荷表示(In mode ...
- python(二)数据类型
一.整数 创建方法 i = 10 i = int(10) i = int("10",base=2) #“”中是几进制的表示,base是选择要表示的进制,如base=2,用2进制的 ...
- Redis 学习(二) —— 数据类型及操作
Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...
- Redis学习之二 数据类型和相关命令
原文:https://www.cnblogs.com/lonelyxmas/p/9073928.html 如果还不懂安装的,请看 Windows环境下安装Redis Redis一共支持五种数据类型 1 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- Python学习总结之二 -- 数据类型
带你走进数据类型 一:整数.浮点数 Python中整数和浮点数的定义以及运算和C++都是一样的,我在这里就不需多说了,我就说明一点:Python相对于C/C++而言,定义整数没有int 和 long ...
- JNI学习积累之二 ---- 数据类型映射、域描述符说明
本文原创,转载请注明出处:http://blog.csdn.NET/qinjuning 在Java存在两种数据类型: 基本类型 和 引用类型 ,大家都懂的 . 在JNI的世界里也存在类似的数据类型,与 ...
- C语言学习笔记二---数据类型运算符与表达式
一.C的基本语法单位 1.标识符:有效长度:31(DOS环境下) 2.关键字:main不是 3.分隔符:空格符,制表符,换行符,换页符 4.注释符:a./*.....*/ b.// 二.C的常用输 ...
- python 基础二-----数据类型和控制语句
一.数据类型: 1)数据类型 1.整数(int) 2.浮点数(float) 3.字符串(string) 4.列表(list) 5. 元组(tuple) 6.字典(dict): key和value是一一 ...
随机推荐
- python中报中文编码异常,Non-ASCII ,but no encoding declared
异常信息: SyntaxError: Non-ASCII character '\xe5' in file a.py on line 9, but no encoding declared; see ...
- shutdown-用于关闭/重启计算机
Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提 ...
- css中的定位属性position(转)
css中的定位属性position 同样的也是上课的时候发现学生难以理解的一些问题拿出来记录一下,希望帮助初学者. 在css中定位属性position的运用在页面中是很常用的,特别是一些结合js来 ...
- Codeforces Round #527 (Div. 3)D2(栈,思维)
#include<bits/stdc++.h>using namespace std;int a[200007];stack<int>s;int main(){ int ...
- python语言基础语法笔记<note1库安装和工具安装>
Python是一门入门简单的编程语言,它的安装和搭建也非常简单.在大部分的发行Linux版本上都预装了python2,部分也预装了python3,需要查看Linux上是否安装Python,只需要在 命 ...
- 在Python中使用asyncio进行异步编程
对于来自JavaScript编码者来说,异步编程不是什么新东西,但对于Python开发者来说,async函数和future(类似JS的promise)可不是那么容易能理解的. Concurrency ...
- day16正则表达式作业详解
1.正则表达式练习题 点击查看详细内容 作业的讲解 1.匹配整数或者小数(包括正数和负数) -?\d+.\d+|-?\d+ -?\d+(\.\d+)? 2.匹配年月日日期 格式2018-12-6 #找 ...
- Django反向解析与分组命名
1.图书管理系统中使用分组或命名分组.URL的命名和反向解析: 2.删除功能三合一: urls.py文件 from app_book import views urlpatterns = [ url( ...
- Github搭建个人博客
Github的搭建博客真的是非常容易,所需的步骤只有三个:要完成自己的github.io博客网站,总共分三步:开通自己的github.io repo,选择一款Jekyll的主题,编写并发布博客.下面将 ...
- Qt学习之网络编程(二)
UDP协议 UDP协议(用户数据报协议)是一种简单轻量级.不可靠.面向数据报.无连接的传输层协议.之后我们会介绍TCP协议,相对于UDP,TCP是一种可靠的.有连接的协议:既然这样我们就用TCP不就好 ...