一、volatale static和extern的区别。
volatale修饰的变量,表示禁止编译器对它进行优化,每次用到这个变量的时候必须重新读取这个变量的值,而不是使用保存在寄存器里面的备份。
static又称作静态全局变量。他会限制变量或者函数的作用域,延长变量的生命周期。作用一,当其在函数外定义是,他作用范围是这个文件,在不同文件中可以重复定义同名的变量或,在程序的整个运行周期都存在。作用二,在第一次调用是会进行初始化,以后每次使用时都会保存上一次的值,具有记忆特性(延长生命周期),在程序运行的整个周期都存在。
extern:在修饰函数或者变量时,具有全局性,标明他在其他文件里面会存在实现。也会进行初始化一次,具有记忆特性,在程序运行期间都存在。
二、const的作用。
const修饰只读变量,所修饰的变量在程序运行过程中禁止再次赋值。
Ex: const int a = 10;(正确)
a = 20;(错误)
三、C语言的自增运算符i++和++i。
i++和++i都表示对i进行自加1的操作,而区别就是i++会在运算操作结束之后再进行自增,而++i则是在操作之前就会对变量进行自增1的操作。当在for循环当中,第三个参数一般会使用++i,提高效率。
四、关系运算符<>=!
第一点注意,不能和数学中一样使用a>=b类似的关系判断,而应该写成a>b||a==b。
==是关系运算符,而一个等号“=”是赋值运算,要注意。
==和=!是相反的两个关系判断条件。
不管是哪个关系运算,如果成立会返回真,反之不成立则会返回假。
五、逻辑运算符&& || !
&&表示且的逻辑,左右两边的同时为真的情况下结果才为真,其余情况下为假。
||表示或的逻辑,左右两边当同时为假时结果为假,其余情况下为真。
!表示非的逻辑,例如==和=!,=!表示不等于,即左右值不相等时会返回真,反之返回假。
六、递归函数
1、递归函数。
函数的递归调用,就是说在函数中会再次调用函数本身。但是要主要在调用时必须要有条件使函数结束(也就是return掉),要不会造成死循环。
Ex:void fun(int x)
{
if(x == 0)
return;
else
fun(x-1);
}
void main()
{
int x = 10;
fun(x);
}
(这只是一个简单的例子,并没有实际的意义)。 |
|