C语言复习一

本文介绍了C语言中的重要概念,包括浮点数精度、数据类型转换、递增递减运算符的方向、函数默认返回类型、汉诺塔问题的递归解决方法、寄存器变量的作用及限制、static关键字声明外部变量的特性、变量类型总结、内部与外部函数的区别。

一、float 型变量的有效数字:7位有效数字。也就是说高于7位的将会被丢失。

a=123456.789e5

b=a+20

这是a与b相等。

二、各类数值型间的混合计算转换,横向为必转。

double  → float

^|

long

^|

unsigned(注意了:如果int与unsigned计算,结果为unsigned的

^|

int  <- char,short

三、++,--运算结合方向为自右至左

-i++等同于-(i++)

如果i=3

printf("%d",-i++);

最后输出-3,i为4

四、c函数默认返回int型变量。也就是说,不加返回类型的函数默认返回int型。

return语句可以写成return(something);

五、汉诺塔

汉诺塔的主要递归:

void hanoi(int n,char one,char two,char three)
{
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
六、register变量(寄存器变量)

寄存器变量(有些编译器自动优化,对该类型不做处理)

使用平凡的变量,直接放在寄存器中。

注:只有局部变量和形式参数可以作为寄存器变量。

函数结束时释放寄存器。在调用另一个函数时,该寄存器又可以重新被利用。

七、用static声明外部变量

使用static 声明的外部变量,只限于在本文件中使用,而不能被其他文件引用。也就是说其他文件即使使用extern也无法访问本文件的内容。

八、C中的变量类型总结

对变量的关键字有:static、auto(可省略)、register、extern。

static:静态内部变量,静态外部变量

auto:自动变量(动态局部变量)

register:寄存器变量

extern:表明是一个已被定义的外部变量。

如,可以这样:

main()
{
extern int A,B;
printf("%d",max(A,B));
}
int A=13,B=-8;

也就是说,外部变量不一定是本文件外部的变量。外部变量就是全局变量。全局变量包括:静态外部变量(static,即不允许其他文件访问)和外部变量(允许其他程序访问)。

从作用域来分:

局部变量包括:

自动变量

静态局部变量

寄存器变量

形式参数

全局变量包括:

静态外部变量

外部变量

从变量存在的时间来区分:

动态存储:

自动变量

寄存器变量

形式参数

静态存储:

静态局部变量

静态外部变量

外部变量

从存放的位置来区分:

内存中静态存储:

静态局部变量

静态外部变量

外部变量

内存中动态存储:

自动变量

形式参数

CPU寄存器存储:

寄存器变量

九、内部函数与外部函数

内部函数:

只能被本文件中的其他函数调用的函数称为内部函数。

在函数前面加static。

如:static int fun(int a, int b);

内部函数又称为静态函数。

外部函数:

在函数前面加上extern关键字,默认的函数都为外部函数。

可供其他文件调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值