第二、三章预习问题

1.  字符是有符号整数还是无符号整数?

    无符号整数

2. 什么是变量

   其值在其作用域内可改变的量。变量在使用前必须要定义,每个变量都有自己的地址。变量的值是变量所对应的内存区域内存放的二进制序列。变量在内存中存放和其值无关,和其类型相关。

3. 局部变量和全局变量

作用域:形参变量只有在函数内才有效,立开改函数就不能再使用,变量有效性的范围即作用域。

局部变量:在函数内作定义说明,作用域仅限于函数内。

注:(1)主函数中定义的变量只能在主函数中使用,主函数中也不能使用其他函数中定义的变量;

(2)形参变量属于被调函数的局部变量,实参属于主调函数的局部变量;

(3)允许在不同函数中使用相同变量名,它们互不干扰,互不混淆。

全局变量:也称外部变量,在函数外部定义的变量,属于一个源程序文件,作用域为整个源程序。只有在函数内经过说明的全局变量才能使用。全局变量说明符为extern

4. 定义与声明是什么及两者区别

定义:创建一个对象,为其分配一块内存并取名(即变量名或对象名)。一个变量或对象在一定区域内只能被定义一次。

声明:告诉编译器,名字已匹配至一块内存上。声明可出现多次;告诉编译器,名字已预订,别的地方不能用它来作为变量名或对象名。

5. 联合与结构的区别

   结构:各成员有各自的内存空间,一个结构变量的总长度等于各成员长度和。

   联合:各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。(共享:该联合变量可被赋予任一成员值,但每次只能赋一种值,赋如新值则冲去旧值。)

6. static作用

static修饰变量指该变量空间独立于函数中的auto变量或栈变量,static变量空间在内存中的静态区内分配。

(1)修饰局部变量

         局部变量用static修饰时,该变量便存放在静态数据区,生命周期直至整个程序执行结束。虽然其生命周期和存储空间发生了变化,但作用域没变。对于静态局部变量,若没有进行初始化,整型变量系统会自动对其赋值为0,对于字符数组自动赋值为“\0”。

(2)修饰全局变量

     static对全局变量进行修饰改变了作用域的范围,由原来的整个工程可见变为

本源文件可见

7. extern作用

extern指当前变量或函数不是在本源文件内声明的,是外部变量或外部函数。extern可以修饰变量和函数,该变量或函数在其他地方被定义,在这里声明使用它:多个c源文件的编译是独立的,使用编译器只判断变量名或函数名是否一致;等到链接时,多个源文件编译后的.o文件链接成一个目标文件,若有一个以上源文件对同一个变量进行了初始化则报错。

(1)在任何函数体声明或定义变量时,编译器选择初始化的那个,若没有初始化则

任选其中一个作为定义,但加extern肯定是声明;若不想让其他源文件链接,则需使用static

在函数体内声明使用其他源文件中定义的变量时必须使用extern,因为在函数体内默认为局部变量。

(2)函数默认是外部的,如果不想让其他源文件链接到,在函数前加static。(注:

为提高程序的可读性,最好不要省略extern。在用extern声明变量时,可以不指定类型。在写程序时要注意外部函数的参数类型、参数个数和返回值类型保持一致。)

8. const作用

(1)关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。

(2)通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。

(3)合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。

9.  volatile作用

volatile修饰的变量表示该变量的值很容易由于外部因素发生改变,请求编译器在每次对变量进行访问时去内存里读取。

10.typedef作用

为一种数据类型定义一个新名字,包括内部数据类型和自定义数据类型。目的为:(1)给变量一个易记且意义明确的新名字;(2)简化复杂类型声明。

11.  枚举

     使用方法:enum_type_name类型是对一个变量取值范围的限定,花括号内为取值范围。enum变量类型可以给其中的常量符号赋值,若不赋值则从被赋初值的那个常量开始依次加1;若都没有赋值,从0开始依次递增1

     #define宏的区别:

(1)#define宏常量在预编译阶段进行简单替换,枚举常量在编译时确定其值。

(2)在编译器里,可调试枚举常量,但不能调试宏常量。

(3)枚举可一次定义大量相关常量,而#define宏一次只能定义一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值