C语言学习 18-11-6

1.枚举类型

1.) 关键字 enum
2.) 声明一个枚举类型

enum AA {ONE, TWO, THREE};
enum BB {FOUR, FIVE=100, SIX};
typedef enum CC {SEVEN, EIGHT, NINE} C;

其中的ONE表示为0,TWO表示为1,THREE表示为2,以下类同。
注意:FIVE表示为100,SIX表示为101。
3.) 声明一个对象

enum AA a = ONE;
C c = SEVEN;

2.联合体

1.) 关键字 union
2.) 声明一个联合体

union AA				typedef union BB
{					{
	int a;					int a;
	char b;					char b;
	short c;				short c;
};					}B;

3.) 联合体的大小
联合体内的所有元素共享同一个空间,该空间为联合体中所占空间最大的类型所占的空间。
例: AA aa; aa.a = 1; printf("%d\n", aa.b);
结果为:1
AA aa; aa.b = 1; printf("%d\n", aa.a);
结果为:乱码 原因是只有小端的字节存储 0000 0001,其他字节为空,因此会输出乱码。

3.递归函数

1.) 递归函数是指自己调用自己的函数
2.) 使用递归函数完成某数的阶乘

int Factorial(int num)
{
	if(1 == num)
		return 1;

	return num * Factorial(num-1);
}

3.) 斐波那契数列
斐波那契数列是指这样的数列:
1 2 3 4 5 6 7 8 9
1 1 2 3 5 8 13 21 34
使用递归函数完成斐波那契数列:

int FBNQF(int num)
{
	if(2 >= num)
		return 1;

	return FBNQF(num-2) + FBNQF(num-1);
}

使用循环的方法完成斐波那契数列:

int FBNQX(int num)
{
	int first = 1;
	int second = 1;
	int sum = 0;
	int i;
	for(i=3; i<=num; i++)
	{
		sum = first + second;
		first = second;
		second = sum;
	}

	return sum;
}

猜你喜欢

转载自blog.csdn.net/weixin_42896619/article/details/83818123