linux C数据结构类型
来源:互联网 发布:畅捷通软件 编辑:程序博客网 时间:2024/06/10 23:39
类型说明符
数的范围
字节数
int
-231~(231-1)
4
unsigned int
0~65535即0~(216-1)
4
short int
-32768~32767即-215~(215-1)
2
unsigned short int
0~65535即0~(216-1)
2
long int
-2147483648~2147483648即231~(231-1)
4
unsigned long int
0~4294967295即0~(232-1)
4
char
-128~127即27~(27-1)
1
unsigned char
0~255即0~(28-1)
1
2. auto,register,extern,static使用有什么区别
auto变量:是函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给他们分配存储空间,在函数调用结束时就自动释放这些存储空间
register变量:为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,只有局部自动变量和形式参数可以作为寄存器变量
extern变量:外部变量是在函数的外部定义的,它的作用域从变量定义处开始,到本程序文件的结尾,如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终
static变量:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放
3.数据类型间可以进行强制转换原因
变量的值是变量所对应的内存区域内存放的二进制序列,变量的值不会因为变量的类型发生改变而改变,当变量转换为对应的类型时,内存区域内的二进制序列以该类型的形式翻译出来。由此可见,变量在内存中存放和它的值没有关系,而是和他的类型相关的。
4.声明和定义的区别
定义就是(编辑器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字我们经常所说的变量名或对象名。一个变量或对象在一定的区域内(如函数内、全局等)只能被定义一次。
声明一是告诉编译器,这个名字已经匹配到相应的一块内存上了,声明可以出现多次。二是告诉编译器,这个变量名或对象名已经被预定,别的地方再也不能用它来作为变量名或对象名。
5.使用extern时应该注意什么
(1)多个源文件 共享变量和函数时,,由于多个C源文件的编译是独立的,所以编译器无法判断多个源文件共享的变量的类型是否一致,等到链接的时候,多个源文件编译后的.o文件连接成一个目标文件,如果有一个以上源文件对同一个变量进行了初始化,则报错,至少GCC是这样。
(2)在写程序时,如果使用extern函数,一定要注意外部函数的参数类型,参数个数和返回值类型,最好保持一致,要不然会出现意想不到的问题
6.宏定义与const常量定义之间有什么区别
define是宏定义,程序在预处理阶段将用define定义的内容进行了替换,因此程序运行时,常量表中没有用define定义的常量,系统不为它分配内存;const定义的常量,在程序运行时在常量表中,系统为它分配内存。
define定义的常量,预处理时直接进行了替换,所以编译时不能进行数据类型检验;const定义的常量,在编译时进行严格的类型检验,可以避免出错。
define 定义表达式时要注意“边缘效应”。
7.枚举的使用方法
例如: enum enum_type_name
{
ENUM_CONST_1,
ENUM_CONST_2,
......
ENUM_CONST_n
}enum_variable_name;
注意:enum_type_name是自定义的一种数据类型名,而enum_variable_name为enum_type_name类型的一个变量,也就是我们常说的枚举变量。实际上enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围。
8.typedef的使用方法
typedef为C语言的关键字,其作用是为一种数据类型定义一个新名字。在编程中使用typedef目的一般有两个:一个是给变量起个易记且意义明确的的新名字,另一个是简化一些比较复杂的类型声明。
9.联合和结构的区别
在结构体中,各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和;而在联合中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。
10.局部变量和外部变量同名时的使用方式
如果同一个源文件中,局部变量和外部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。
- linux C数据结构类型
- Linux C 数据结构---线性表
- Linux C 数据结构---线性表
- linux C 数据结构之单链表
- Linux C-----位段类型
- Linux C编程 bool类型
- linux c void 类型应用
- 关于c语言写数据结构时类型替换的问题
- C语言中如int32_t类型的数据结构解…
- 庖丁解牛<c++primer>系列三:类型别名和自定义数据结构
- C/C++编程教训----数据结构的类型别名和memset
- Linux C 算法与数据结构 --二叉树
- Linux C 数据结构——栈
- Linux C 数据结构——队列
- Linux C 数据结构——二叉树
- Linux C 算法与数据结构 --二叉树
- Linux C 数据结构---单向链表
- Linux C 数据结构—-循环链表
- 天下游安装教程
- Halcon10.0与MFC混合编程(配置)
- 机器学习中的Hello World
- 694. Number of Distinct Islands
- JavaScript实现二叉树
- linux C数据结构类型
- 杭电2005 第几天?
- 10.7 蚂蚁 2392
- 【模板——ing】O(n)回文子串(Manacher)算法
- python:BeautifulSoup 模块使用指南
- Android笔记(一):使用WebView
- 第一章 变量 数据类型 常用获取元素的方式
- [数论] HAOI2012 容易题
- Java核心技術卷_?_對象與類