预习第二章数据类型(一)

来源:互联网 发布:农村淘宝评论在哪里 编辑:程序博客网 时间:2024/05/29 03:49

1.字面常量是什么鬼?

答:常量包括字面常量,符号常量,契约型常量,枚举常量。

         字面常量包括:整型常量,字符型常量,字符串常量。

      注意: 不存在数组常量,结构体常量等结构型的字面常量 。但是存在结构型的符号常

2.什么是符号常量?

符号常量:(可以定义结构型常量) 用#define和const定义的常量。

3.这两种常量之间的区别?

1)#define 定义的常量, 除了字符串字面常量外都不占内存 ,所以无法取常量的地址,仅仅是宏替换而已

eg: #define NAME “pang dong” 本质是字符串字面常量,会占用“静态存储区” 

#define MAX 256 本质是整形的字面常量,不会分配内存。

4.变量?

变量可以在程序中三个地方说明: 函数内部、函数的参数定义中或所有的函数外部。根据所定义位置的不同, 变量可分为局部变量、形式参数和全程变量。从空间角度来看,变量可以分为全局变量和局部变量,而从时间角度来分的 可以有静态存储变量和动态存储变量之分。

5.全局变量和局部变量

1.局部变量

他是指在函数内部定义的变量作用域为定义局部变量的函数,也就是说他只能在定义他的函数中使用

最值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量消失

eg:

func ()

{
int x; 局部变量x的作用域 很明确
.....
}

2.全局变量

在程序执行的过程中一直有效

eg.

int x=1;

func ()

{
x=x+1;

}

func1 ()

{
x=x-1;

}

main ()

{

}
由此不难看出整型x的作用范围

对于全局变量 如果在定义的时候不做初始化 则系统将自动为起赋值 数值型为0

字符型为空'\0'

然而,全局变量的弊端:增加内存开销,降低函数的通用性。

定义全局变量时,理想的位置是在文件的开头,当这些函数以及同一个程序中的其他源程序文件中的某些函数需要使用该全局变量时,在函数内部对该变量使用extern加以说明,说明他是外部的

eg.

main ()

{
extern int a,b;
printf ("mIn is %d\n",min(a,b));
}

int a=1,b=2;
int min (x,y)
int x,y;
{
int z;
z=x<y?x:y;
return(z);
}

对全局变量的定义是要对起分配存储单元的

一个全局变量只能定义一次 可是却可以多次引用

在同一源文件中,全局变量和局部变量同名时,在局部变量的作用域内,全局变量不起作用的。
6.什么是构造类型?

构造类型:构造类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。
   在c语言中,构造类型有以下几种:数组类型,结构体类型,共用类型。

7.书上第37的几个程序,有自己尝试去敲代码,发现第三个无法输出,正常应该输出为3.

8.s5:中的floder为文件夹

9.数据类型大小


0 0
原创粉丝点击