C語言學習 18-11-6
阿新 • • 發佈:2018-12-06
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;
}