一、變量的設置
1.在循環中定義的變量
在循環中定義的變量,當循環結束以后,這個變量將會消失
如果是在循環之外定義的變量,那么如果循環會對這個變量儲存的值做出改變,那么循環完成之后,這個值也確實會改變,符合循環的改變規則。
2.在函數體中定義的變量(局部變量)
在函數體中定義的變量,只在當前的函數體中起作用,不會對其他的函數體產生影響,即使不同函數體中的變量發生同名現象,那么他們代表的也是不同的變量。
3.形式參數
也叫局部變量,我們在定義函數內容的過程中會用到形式參數,這個形式參數的名稱與其他函數體中的變量重了也沒關系,甚至,我們在聲明函數時候使用的形式參數和定義函數內容時使用的形式參數不一樣也沒關系。
二、函數的使用過程
1.對於C標准庫中的函數或者固定常量
(也叫宏,就是#define預指令生成的),我們通過#include預指令來引用相應的頭文件即可使用。
2.對於C標准庫中沒有的宏
我們可以使用#define預指令進行聲明。
3.對於C標准庫中沒有的函數
(也就是我們要自定義的函數),我們可以通過三步走。
1.聲明函數原型
一個函數由三部分構成,第一部分: 這個函數的名稱。第二部分:這個函數是否有返回值,以及返回值是什么類型。第三部分:這個函數是否接受參數的傳遞,以及參數的類型。
例如:聲明一個名稱為showmoney的函數
無返回值,不接受參數傳遞:void showmoney (void);//注意,聲明結束后要有分號結束。
int型返回值,接受一個int型參數和兩個double型參數:
int showmoney (int, double, double);
2.定義函數內容
如果是在一個文件夾中,定義的函數內容需要放在主函數體的下面。
例:
//定義一個函數內容,假定這個函數和主函數在同一個文件中
int showmoney(int a, double b, double c)//注意,聲明函數原型的時候,可以不寫形參,但是在這里,必須要寫形參
{
int x;
printf("這是一個定義函數\n");
printf("money是:%f\n",b+c);
printf("整數是:%d\n",a);
x=a+(int)b+(int)c;
return x;
} //如果無返回值,那么最后直接寫一個return;即可。
這個函數的返回值是整型x,並且x的值會儲存在showmoney()這個函數中
return的兩個作用
1.傳遞返回值,return后面的返回值可以是變量,可以是常量,也可以是表達式,如果返回值的類型和定義的不符,那么會進行數據類型的升降級,使之與定義的數據類型相同。
2.結束當前函數,非主函數中的return表示結束這個函數並把控制返回到主函數,主函數將讀取下一條語句。
主函數中的return表示主函數結束,也就是程序結束。
3.在主函數或者其他函數中調用
2中的函數,其中a,b,c是形式參數(形參),在調用過程中,要在括號中放入實參,這個實參會帶入形參的位置進行操作。
三、幾點說明
1.模塊化
要養成模塊化構建程序的思維,把主函數和其他函數分隔開。
2.多源文件編寫
要養成多源文件的編寫,即把不同的函數放到不同的文件中,在使用編譯器進行統一調度。