C语言的数据类型
来源:互联网 发布:unity3d 点光源不亮 编辑:程序博客网 时间:2024/06/04 19:29
C语言数据类型
广西大学荷花-百度图片
关键字
按计算机的存储方式可分为两大基本类型:整数类型和浮点数类型,不同的种类提供了不同的范围和精度。
创建基本数据类型要用到8个关键字:int、long、short、unsigned、char、float、double、signed(ANSI C)。
有符号整数
int是所有系统中基本整数类型。
long 或long int 可存储的整数应大于或等于int可储存的最大数;long至少是32位。
short 或short int 整数应小于或等于int 储存的最大数;short至少是16位。通常,long比short 大。例如,在pc中C DOS 编译器提供16位的short和int、32位的long。这完全取决于系统。
C99标准提供了long long类型,至少和long一样大,至少是64位。
无符号整数
无符号整数只有0和正值,这使得该类型能表示的正数范围更大。在所需的类型前面加上关键字unsigned: unsigned int、unsigned long、unsigned short、unsigned long long。单独的unsigned相当于unsigned int。
字符
字符是如A、&、+这样的印刷符号。根据定义,char类型的变量占用1字节的内存。过去,char类通常是8位。然而,C在处理更大的字符集时,char类型可以是16位,或者32位。
这种类型的关键字是char。一些实现使用符号char,但是其他实现使用无符号的char。ANSIC允许使用关键字signed和unsigned指定所需类型。从技术上看,char、unsigned char和signed char是3种不同的类型,但是char类型与其他两种类型的表示方法相同。
布尔类型(C99)
_Bool 是C99新增的布尔类型。它是一个无符号整数类型,只能储存0(表示假)或1(表示真)。包含stdbool.h头文件后,可以用bool表示 _Bool、true表示1、false表示0,让代码与C++兼容。
浮点数和复浮点数类型
C99识别两种浮点数类型:实浮点数和复浮点数。浮点类型由这两种类型构成。
实浮点数可以是正值或复值。C识别3种实浮点数类型。
float是系统中的基本浮点数类型。它至少可以精确表示6位有效数字,通常float为32位。
double(可能)表示更大的浮点数。它能表示比float更多的有效数字和更大的指数。它至少能精确表示10位有效数字。通常double为64位。
long double(可能)表示更大的浮点数。它能表示比double更多的有效数字和更大的指数。
复数由两部分组成:实部和虚部。C99规定一个复数在内部用一个有两个元素的数组表示,第一个元素表示实部,第二个元素表示虚部。有3种复浮点数类型。
float _Complex表示实部和虚部都是float类型的值。
double _Complex表示实部虚部都是double类型的值。
long double _Complex表示实部和虚部都是long double类型的值。
每种情况,前缀部分的类型都称为相应的实数类型(corresponding real type)。例如,double是double _Complex相应的实数类型。
C99中,复数类型在独立环境中是可选的,这样的环境中不需要操作系统也可以运行C程序。在C11中,复数类型在独立环境和主机环境都是可选的。
有3种虚数类型。它们在独立环境和主机环境中(C程序在一种操作系统下运行的环境)都是可选的。虚数只有虚部。这3中类型如下。
float _Imaginary表示虚部是float类型的值。
double _Imaginary表示虚部是double类型的值。
long double _Imaginary表示虚部是long double类型的值。
可以用实数和I值类初始化复数,I定义在complex.h头文件中,表示i(即-1的平方根)。
#include <complex.h> //I定义在该头文件中double _Complex z= 3.0; //实部=3.0,虚部=0double _Complex w= 4.0*I; //实部=0.0,虚部=4.0double _Complex u=6.0-8.0*I; //实部=6.0,虚部=-8.0
complex.h库包含一些返回复数实部和虚部的函数。
类型的打印转换说明
参考资料:
史蒂芬・普拉达. C Primer Plus (第6版) 中文版[M]. 人民邮电出版社, 2016.
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- c语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- c语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- C语言的数据类型
- Android官方多媒体API Mediacodec翻译(一)
- Swing系列之控件一
- jQuery
- 最长公共子序列-LCS
- 牛腩新闻系统前台设计
- C语言的数据类型
- 查看Android签名
- qwb与矩阵 【DP】+【输入挂】
- iostream整理
- LeetCode532. K-diff Pairs in an Array
- 集群中配置多台计算机之间ssh无密码登录的一种简便方法
- 面试题22. 栈的压入、弹出序列
- linux使用常识
- leetcode Add to List 200. Number of Islands