预习第二章 数据类型
2018-01-23 16:13
141 查看
4000
1、数据类型 数的范围 字节数
int -2^31~(2^31 -1) 4
unsigned int 0~(2^16 -1) 4
short int -2^15~(2^15 -1) 2
unsigned short int 0~(2^16 -1) 2
long int -2^31~(2^31 -1) 4
unsigned long 0~(2^32 -1) 4
char -2^7~(2^7 -1) 1
unsigned char 0~(2^8 -1) 1
2、void fun()
{
static int a = 1; a++;
printf( "%d\n",a );
}
int main(void)
{
fun();
fun();
return 0;
}
执行结果为 2 3
在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次,第二次调用fun()函数时,a的值为2
并且没有进行初始化赋值,直接进行自增运算,所以得到结果为3
3、typedef char * p_str1;
#define p_str2 char *;
p_str1 s1, s2;
p_str2 s3, s4;
上述变量的定义中,s1、s2、s3都被定义为char*,而s4则定义成了char
原因在于,#define只是简单的字符串替换而typedef则是为一个类型起新名字
4、枚举和#define宏的区别
#define 宏常量实在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值
一般在编译器里,可以调试枚举常量,但是不能调试宏常量
枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个
5、定义和声明的区别
定义就是创建一个对象,为这个对象分配一块内存并给它取上一个名字。一个变量或对象在一定的区域内只能
被定义一次。
声明是告诉编译器,这个名字已经匹配到一跨爱内存上了,声明可以多次出现
6、const修辞构造类型和指针及其参合体
将类型去掉,看const修辞谁,谁的值就是不能修改的
如const int a[5] = {1,2,3,4,5}; 去掉int,变成const a[5],那么a数组里的值就不变了
7、什么是变量
其值在其作用域内可以改变的量成为变量
变量在使用前必须定义
变量在内存中存放和它的值没有关系,而是和它的类型有关的
8、局部变量和全局变量的区别
局部变量是在函数内作定义说明的,其作用域极限与函数内,离开该函数后再使用这种变量是非法的
全局变量是在函数外部定义的变量,它不属于哪一个函数,属于一个源程序文件,其作用域是整个源程序
9、如何用typedef简化复杂的变量声明
在传统的变量声明表达式里用类型名代替变量名,然后把关键字typedef加在该语句开头
10、联合体和结构体的区别
在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和
在联合中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度(同样遵循对齐)
1、数据类型 数的范围 字节数
int -2^31~(2^31 -1) 4
unsigned int 0~(2^16 -1) 4
short int -2^15~(2^15 -1) 2
unsigned short int 0~(2^16 -1) 2
long int -2^31~(2^31 -1) 4
unsigned long 0~(2^32 -1) 4
char -2^7~(2^7 -1) 1
unsigned char 0~(2^8 -1) 1
2、void fun()
{
static int a = 1; a++;
printf( "%d\n",a );
}
int main(void)
{
fun();
fun();
return 0;
}
执行结果为 2 3
在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次,第二次调用fun()函数时,a的值为2
并且没有进行初始化赋值,直接进行自增运算,所以得到结果为3
3、typedef char * p_str1;
#define p_str2 char *;
p_str1 s1, s2;
p_str2 s3, s4;
上述变量的定义中,s1、s2、s3都被定义为char*,而s4则定义成了char
原因在于,#define只是简单的字符串替换而typedef则是为一个类型起新名字
4、枚举和#define宏的区别
#define 宏常量实在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值
一般在编译器里,可以调试枚举常量,但是不能调试宏常量
枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个
5、定义和声明的区别
定义就是创建一个对象,为这个对象分配一块内存并给它取上一个名字。一个变量或对象在一定的区域内只能
被定义一次。
声明是告诉编译器,这个名字已经匹配到一跨爱内存上了,声明可以多次出现
6、const修辞构造类型和指针及其参合体
将类型去掉,看const修辞谁,谁的值就是不能修改的
如const int a[5] = {1,2,3,4,5}; 去掉int,变成const a[5],那么a数组里的值就不变了
7、什么是变量
其值在其作用域内可以改变的量成为变量
变量在使用前必须定义
变量在内存中存放和它的值没有关系,而是和它的类型有关的
8、局部变量和全局变量的区别
局部变量是在函数内作定义说明的,其作用域极限与函数内,离开该函数后再使用这种变量是非法的
全局变量是在函数外部定义的变量,它不属于哪一个函数,属于一个源程序文件,其作用域是整个源程序
9、如何用typedef简化复杂的变量声明
在传统的变量声明表达式里用类型名代替变量名,然后把关键字typedef加在该语句开头
10、联合体和结构体的区别
在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和
在联合中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度(同样遵循对齐)
相关文章推荐
- 预习第二章数据类型(一)
- 预习第二章数据类型
- C++的学习笔记(第二章:基本数据类型与表达式)
- 视频教程 一起搞大C#-初级篇 第二章 变量、数据类型(下)
- 第二章 数据类型
- c++primer第二章“c++定义了几种基本类型,还提供了可用于自定义数据类型的机制,此外,我们还能修改已有的类型以形成复合类型”
- 第二章(1.5)Python基础知识(数据类型)
- 第二章 数据类型
- JavaSE编程基础 第二章 数据类型和运算符
- JAVASE学习笔记:第二章 JAVA基本数据类型
- 【《Python编程: 从入门到实践》习题答案--第二章:<变量和简单数据类型>】
- 第二章 数据类型(一)
- 第二章 JavaScript数据类型,常量与变量
- 在学C语言之第二章C语言的基本数据类型和存储类
- 第二章数字化信息编码与C语言数据类型(上)
- 第二章数据类型问题与解答
- C++ 第二章(数据类型)之四
- JAVA第二章基础知识:注释,标识符,数据类型常量变量,基本数据类型转换。--------------(Make A little EvProgresseryday )
- 第二章数据类型和表达式--项目3关于圆的计算
- 深入C#数据类型小部分第二章