函式 作用域 指標

2021-07-22 02:41:54 字數 2462 閱讀 4093

實參與形參

值傳遞:實參賦值給形參之後,形參在函式體內發生的變化,不會傳回給實參

個數的對應關係

型別轉換

int result = power(10);

nslog(@"%d", result);

int a = 10;

plus(a);

nslog(@"in main a=%d", a);

fa(1,2,3,4,5);//當無形參時,實參會被忽略掉

//fb(1,2,3);//形參指定為void後,呼叫時不能有實參

//add(10, 20, 30);//當有形參時,實參不能多

//add(10);//也不能少

result = add(3.14, 2.68);//當形參與實參的資料型別不一致時,以形參為準,進行轉換

nslog(@"%d", result);

return:結束所在函式,賦值與跳轉,return語句只能返回乙個值,不能反回兩個或兩個以上的值

exit:結束整個程式

switch (x)
遞迴:是一種特殊的函式呼叫方法,自己呼叫自己
#import 

long power(int x, int n)

return x * power(x, n - 1);

}int main()

return

0;}

變數其作用的範圍

區域性變數:定義在函式體內,或復合語句內的變數

#import 

void fa(int x)//形參x是乙個區域性變數

//nslog(@"%d", a);

for (int i = 0; i < 10; i++)

printf("\n");

//printf("%d\n", i);//迴圈變數i是迴圈體內的區域性變數

//b++;

//a[0] = 54321;

}int main()

return

0;}

全域性變數:定義在函式體外的變數,盡量不要使用全域性變數
#import 

int g1 = 10;//g1是乙個全域性變數

void fa()

int g2;//乙個全域性變數不初始化時,編譯器將給它賦值為0

//全域性變數與區域性變數的關係

int abc = 100;

void fc()

nslog(@"%d", abc);

}int main()

return

0;}

從變數分配儲存空間到儲存空間被釋放空間的時間

auto關鍵字(預設)

static關鍵字

延長區域性變數的生命週期,到整個程式結束

static不會修改區域性變數的作用域

#import 

void fa()

void fb()

int main()

}return

0;}

指標就是位址,位址就是自己在記憶體中的編號

指標變數:專門儲存位址的變數,簡稱為指標

指向:指標變數p中儲存另乙個變數x的位址時,就說該指標變數指向該變數x

引用:使用指標操作(賦值、訪問)其指向的變數

|

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

解析:

#import 

int main()

return

0;}

每日一練

1、列印如下圖形

2、用函式簡化列印程式

#import 

void printspace(int num)

}void printstar(int num)

}void printpic(int linenum)

}void printpic1(int linenum)

printf("\n");

}}int main()

return

0;}

關於函式指標的作用域

今天在mfc工程中使用了wm user定義使用者訊息,從文件中得知on message的訊息處理函式應該符合如下格式 afx msg lresult cwnd wparam,lparam 其中的作用域 cwnd 引起了我的好奇。我們知道,訊息處理函式只能在cwnd的派生類中定義或者過載,其作用域必然...

函式過載與作用域,陣列指標

別名宣告的作用 例 typedef int arrt 10 using arrt int 10 arrt func int i arrt是含有10個整數的陣列的別名,因為無法返回陣列,所以將返回型別定義成陣列的指標,因此,func函式接受乙個int實參,返回乙個指向包含10個整數的陣列的指標。函式過...

函式作用域

有巢狀函式的時候有return x的返回函式x的位址,沒有的則為none def f1 n1 f1 print f1中 n1 def f2 n2 f2 def f3 n3 f3 print f3中 n3 print f2中 n2 return f3 return f2 r1 f1 print r1 ...