C語言初級階段5——函數(shù)1
函數(shù)的基本概念
1.函數(shù):理解為封裝功能的容器。
主函數(shù)是函數(shù)的入口
2.函數(shù)定義的基本格式:
返回值類型:常用的基本數(shù)據(jù)類型,執(zhí)行完以后,函數(shù)會得到一個什么類型的值,如果需要返回一個值,那么返回類型這里通過return把值返回出去;如果不需要返回一個值出去,那么就在返回值類型這里就用void(void表示空類型)
函數(shù)名:就是一個標(biāo)識符,符合標(biāo)識符的規(guī)則和規(guī)范
int——返回值類型 main()——函數(shù)名 (形參列表){
return 0; 話說完了,函數(shù)運(yùn)行結(jié)束了。
}
3.自定義函數(shù)
(1)int One()
{
return 0;
}
(2)void Two(){
}
函數(shù)的調(diào)用
1.程序的運(yùn)行流程:自上而下依次進(jìn)行,程序的入口在main函數(shù)這里
函數(shù)的調(diào)用:把自定義函數(shù),放到主函數(shù)里面來。直接寫函數(shù)名
形參列表:形式參考的變量,在調(diào)用這個函數(shù)的時候,需要用到什么數(shù)據(jù),就可以用形參來表示。函數(shù)名后面的括號。
實(shí)參列表:有實(shí)際的值參考的值。——后面括號中的參數(shù)。(可以是常量、變量、表達(dá)式、函數(shù)等)
調(diào)用函數(shù)的時候,會把實(shí)參傳給形參,對應(yīng)位置進(jìn)行傳參(值傳遞)。
如果將自定義的函數(shù)放在放在主函數(shù)之后,在主函數(shù)中調(diào)用是調(diào)回用不出來的。
2.BUG:一個無法解析的外部命令,函數(shù)只聲明了,沒有被定義(加花括號)
void Fun;函數(shù)的聲明
#include<stdio.h>
void Two() {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", j, i, j * i);
}
printf("\n");
}
}
int Three(int a, int b) {
return a + b;
}
int Four()
{
return 0;
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", j, i, j * i);
}
printf("\n");
}
}
void Seven(int x, int y)
{
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
printf("*");
}
printf("\n");
}
}
int main() {
Two();
printf("%d\n", Three(149, 778));
printf("%d\n", Three(12, 749));
printf("%d\n", Three(159, 54));
Four();
Seven(10,4);
return 0;
}
局部變量和全局變量
1.局部變量:作用域在一定的區(qū)域內(nèi)才能被使用的變量,出了自己的作用域就會被釋放掉。
#include<stdio.h>
void add() {
int a;
}
int main() {
int a;//這是可以被執(zhí)行的因為它的范圍不同。
return 0;
}
2.全局變量:從定義開始往下,所有的地方都可以使用,在程序程序結(jié)束的時候被釋放。
#include<stdio.h>
int x;//從函數(shù)外定義了所以全部都可以用。
void add() {
x = 10;
int a;
}
int y;//在這里定義y上面的不能用,因為程序的讀取是自上而下進(jìn)行的。
int main() {
int a;
x = 10;
y = 2;
return 0;
}
3.注意:全局變量和局部變量允許同名,使用這個這個同名變量的時候,使用的是最近的是最近的一個。(就近原則)
#include<stdio.h>
int x;//如果沒有給全局變量賦值,系統(tǒng)默認(rèn)為0。
int y = 2;
int main() {
int y = 7;//就近原則
printf("%d\n%d\n", x, y);
return 0;
}
4.靜態(tài)變量:在程序執(zhí)行后定義的,生命周期是程序結(jié)束后才死亡的,只會被定義一次,不會被重復(fù)定義。
靜態(tài)的關(guān)鍵字:static
#include<stdio.h>
int main()
{
int q;
for (int i = 0; i < 10; i++) {
q++;
printf("%d\n", q);
}
for (int i = 0; i < 10; i++) {
static int a = 10;//第二次申請內(nèi)存失敗
a++;
printf("%d\n", a);
}
return 0;
}

浙公網(wǎng)安備 33010602011771號