基本数据类型
2017-01-23 23:32
281 查看
C数据类型:
1、基本类型:①整型:短整型short、整型int、长整型long ②实型:单精度型float、双精度型double
③字符类型char
2、构造类型:数组、结构体struct、共用体union、枚举类型enum
3、指针类型
4、空类型void
5、定义类型typedef
数据类型决定:
1.
数据占内存字节数
2.
数据取值范围
3.
其上可进行的操作
标识符准则:
1、由字母、数字、下划线组成 2、开头只能是字母或下划线
3、区分大小写 4、长度要求
5、不能与关键字同名
指针:各种类型的指针占4个字节,指向变量所在地址;16位放32为中的低16位,其余高十六位取决于低十六位的最高位,用以保证数的准确(符号位扩展)。整型数据达到最大值不断循环。
实型存储:符号位(1位)尾数(23位)指数(8位)
尾数用纯小数形式;不能精确表示0;规范化的指数形式;小数点前只有一位数据;
字符:一位字节,用ASCll码表示;
注意数组下标越界?
‘t’与“t”的区分:“t”里有\0;
字符串后面必有\0,字符数组无;
区分:a[]:[]地址运算符,a为首地址;a()为函数;
ASCll码最高位为0,采用7位;数字最高位为1;
基本数据类型:
基本类型:又称非构造性数据类型,其构造简单,是由系统事先定义好的。
构造类型:又称复杂数据类型,一般由程序员将其它数据类型(包括构造类型本身)按一定的规则构造而成。
{数组:相同的数据类型的几何;(1)同质(2)连续、有序}
指针类型:指针变量中只能存放地址(指针)。主要用于解决动态数据的建立、删除和使用。
空类型: 主要用于数据类型的转换和定义函数的类型。
C程序中的数据类型有常量和变量之分,分别属于以上这些数据类型。在程序中用到的所有数据都必须先定义后使用。
类型标识符
名字
取值范围
char
字符型
ASCII字符代码
unsigned char
无符号字符型
0至255
signed char
有符号字符型
-27 ~ 27-1
int
整型
-231~ 231-1
unsigned int
无符号整型
0 ~ 232-1
signed int
有符号整型
同int
float
浮点
10-38~1038
double
双精度型
10-308~10308
移植性:在嵌入式开发中,考虑到代码的移植性,对于有符号(signed)与无符号(unsigned)一定要留心系统默认的是无符号还是有符号;
为了解决此问题,通常使用typedef来重新指定声明无符号还是有符号;
Typedef int sig_int;
Typedef unsigned int un_int;
数据类型说明符:
printf( )函数
功能:向终端输出若干个任意指定类型的数据
格式:printf("格式控制",参数表列);
scanf( )函数
功能:等待用户从键盘上输入数据,然后按格式控制的要求对数据进行转换后送到相应的变量地址中去。
格式:scanf(“格式控制”,地址表列);
注意:数据输入过程中产生的垃圾的处理方法!!
清除回车符的影响:①赋值抑制符:scanf(“%d%*c%c”,&a&c);或scanf(“%d”,&a);
Putchar();scanf(“%c”,&c);scanf(“%[^\n]”,str);
②调用一个函数,如:
char *my_gets(char *a)
{
int i = 0;
while((a[i]=getchar())!='\n')
{
i++;
}
a[i]='\0';
}
变量的声明与定义
定义:创建一个变量,为其分配内存空间,并为它取名字(变量名),一个变量只能定义一次;
声明:告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是并未为其分配内存;
变量是对程序中数据的存储空间的抽象
一般变量初始化的方法:
默认初始化规则:
全局变量、静态变量
局部变量
人工初始化:
数值变量
字符变量
指针变量
数组(对数组的操作就是对数组元素的操作)
变量初始化与赋值的共同点:都给变量值;异同点:定义变量并给值叫初始化,定义了以后在给值叫赋值。
内存空间的划分:每个进程运行所需的空间称为进程的虚拟地址空间。32位操作系统中该空间大小为4G(2
32次方)。分配方法一在硬盘上开辟虚拟内存空间,二采用软件实现(写时复制),在内存中给每个进程映射。
C数据类型:
1、基本类型:①整型:短整型short、整型int、长整型long ②实型:单精度型float、双精度型double
③字符类型char
2、构造类型:数组、结构体struct、共用体union、枚举类型enum
3、指针类型
4、空类型void
5、定义类型typedef
数据类型决定:
1.
数据占内存字节数
2.
数据取值范围
3.
其上可进行的操作
标识符准则:
1、由字母、数字、下划线组成 2、开头只能是字母或下划线
3、区分大小写 4、长度要求
5、不能与关键字同名
指针:各种类型的指针占4个字节,指向变量所在地址;16位放32为中的低16位,其余高十六位取决于低十六位的最高位,用以保证数的准确(符号位扩展)。整型数据达到最大值不断循环。
实型存储:符号位(1位)尾数(23位)指数(8位)
尾数用纯小数形式;不能精确表示0;规范化的指数形式;小数点前只有一位数据;
字符:一位字节,用ASCll码表示;
注意数组下标越界?
‘t’与“t”的区分:“t”里有\0;
字符串后面必有\0,字符数组无;
区分:a[]:[]地址运算符,a为首地址;a()为函数;
ASCll码最高位为0,采用7位;数字最高位为1;
基本数据类型:
基本类型:又称非构造性数据类型,其构造简单,是由系统事先定义好的。
构造类型:又称复杂数据类型,一般由程序员将其它数据类型(包括构造类型本身)按一定的规则构造而成。
{数组:相同的数据类型的几何;(1)同质(2)连续、有序}
指针类型:指针变量中只能存放地址(指针)。主要用于解决动态数据的建立、删除和使用。
空类型: 主要用于数据类型的转换和定义函数的类型。
C程序中的数据类型有常量和变量之分,分别属于以上这些数据类型。在程序中用到的所有数据都必须先定义后使用。
类型标识符
名字
取值范围
char
字符型
ASCII字符代码
unsigned char
无符号字符型
0至255
signed char
有符号字符型
-27 ~ 27-1
int
整型
-231~ 231-1
unsigned int
无符号整型
0 ~ 232-1
signed int
有符号整型
同int
float
浮点
10-38~1038
double
双精度型
10-308~10308
移植性:在嵌入式开发中,考虑到代码的移植性,对于有符号(signed)与无符号(unsigned)一定要留心系统默认的是无符号还是有符号;
为了解决此问题,通常使用typedef来重新指定声明无符号还是有符号;
Typedef int sig_int;
Typedef unsigned int un_int;
数据类型说明符:
printf( )函数
功能:向终端输出若干个任意指定类型的数据
格式:printf("格式控制",参数表列);
scanf( )函数
功能:等待用户从键盘上输入数据,然后按格式控制的要求对数据进行转换后送到相应的变量地址中去。
格式:scanf(“格式控制”,地址表列);
注意:数据输入过程中产生的垃圾的处理方法!!
清除回车符的影响:①赋值抑制符:scanf(“%d%*c%c”,&a&c);或scanf(“%d”,&a);
Putchar();scanf(“%c”,&c);scanf(“%[^\n]”,str);
②调用一个函数,如:
char *my_gets(char *a)
{
int i = 0;
while((a[i]=getchar())!='\n')
{
i++;
}
a[i]='\0';
}
变量的声明与定义
定义:创建一个变量,为其分配内存空间,并为它取名字(变量名),一个变量只能定义一次;
声明:告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是并未为其分配内存;
变量是对程序中数据的存储空间的抽象
一般变量初始化的方法:
默认初始化规则:
全局变量、静态变量
局部变量
人工初始化:
数值变量
字符变量
指针变量
数组(对数组的操作就是对数组元素的操作)
变量初始化与赋值的共同点:都给变量值;异同点:定义变量并给值叫初始化,定义了以后在给值叫赋值。
内存空间的划分:每个进程运行所需的空间称为进程的虚拟地址空间。32位操作系统中该空间大小为4G(2
32次方)。分配方法一在硬盘上开辟虚拟内存空间,二采用软件实现(写时复制),在内存中给每个进程映射。
相关文章推荐
- Unity 脚本<1>
- Unity 脚本<2>
- 主板知识详解:支持内存类型
- 前端工程师面试题
- NavMesh.SamplePosition 采样位置 How to get a random point on NavMesh?
- CodeForces 304A Pythagorean Theorem II 【基础】【暴力】
- 初次接触Android Studio发现并解决的一些问题
- POJ1502MPI Maelstrom 【Dijkstra】
- 进程与线程
- 关于js框架react——mvc框架么?
- Python 语法基础
- http的断点续传
- 【IMX6UL开发板试用体验】上手试用与资源使用
- [HNOI2002] 公交车路线
- Qt Creator使用中文方法
- bzoj3172 ac自动机fail树应用
- ES6语法摘要二
- spring boot 兼容servlet3.0
- 支持向量机(SVM) SMO算法详解
- React 语法二:forceUpdate()、componentWillUnmount()、onMouseEnter()与onMouseLeave()