9.14学习C语言(问题)

发布于:2022-12-17 ⋅ 阅读:(450) ⋅ 点赞:(0)

1.static修饰的对象:

static关键字可以修饰:局部变量、全局变量、函数

static修饰后改变了什么?

1.改变了生存周期;就是一个变量、函数从分配内存去表示到回收内存的过程

2.改变了作用域;就是可以在哪些文件里可以使用该函数

static修饰不同对象时的作用:

  1. 局部变量:

生存周期

普通

函数

Static

程序

保留上一次的值

  1. 全局变量:

作用域

范围变小,数据安全

  1. 函数

只能在本文件里被调用,这样是为了数据的安全

还有一个作用是解决重名问题。当用static修饰了全局变量和函数后,其他文件里再定义同名的全局变量和函数也是可以的。一般来说,如果不是要对外提供的函数和全局变量,最好都用static修饰。

  1. #endif 指令

在 C 编程语言中,#endif 指令关闭以下指令:#if、#ifdef 或 #ifndef。当遇到#endif 指令时,打开指令(#if、#ifdef 或#ifndef)的预处理完成。

3.#define            定义一个预处理宏

#undef            取消宏的定义

#if                   编译预处理中的条件命令,相当于C语法中的if语句

#ifdef              判断某个宏是否被定义,若已定义,执行随后的语句

#ifndef            与#ifdef相反,判断某个宏是否未被定义

#elif                若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if

#else              与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else

#endif             #if, #ifdef, #ifndef这些条件命令的结束标志.

defined          与#if, #elif配合使用,判断某个宏是否被定义

4.Volatile关键字的作用主要有如下两个:

1.线程的可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。

2. 顺序一致性:禁止指令重排序。

5.运算符“||”与“|”,“&&”和“&”的区别

区别一:

定义不同:

|| 和 | 都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。

区别二:

与操作和或操作的区别

(1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判断结果则为FALSE

(2)使用或操作,只要其中有一个表达式为TRUE,那么最终的结果就为TRUE,只有当所有的表达式为FALSE时最终结果才为FALSE

区别三:

实际含义不同:

“||”: 如果左边计算后的操作数为true,右边则不再执行,返回true;

“|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。

&&是逻辑与(短路与),当第一个判断条件不满足要求时(返回false),第二个判断条件就不会执行;只有当两个判断条件都返回true时,整个逻辑运算才返回true。

&按位与,不论什么情况下,两边的判断条件都会执行,当两边都返回true时,按位与才返回true。

  1. =,==,===的区别

=赋值 ==比较值是否相同===绝对等同符

  1. for循环

条件一:var 一个值

条件二:进入循环的判断条件

条件三:var 的值每一次循环完后,是否递增或递减

循环体:就是你输入所要循环的代码的地方

执行顺序:先执行条件一,再看条件一是否满足条件二的判断,如果满足则进入循环,反之则不进入循环,如果进入循环里则执行循环体里面的内容,最后再执行条件三

本文含有隐藏内容,请 开通VIP 后查看