程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中的函數

C語言中的函數

編輯:關於C語言

一、認清函數的真相

1、函數的由來

程序  =  數據  + 算法

C程序 = 數據 + 函數

2、函數的意義

模塊化程序設計

\\

C語言中的模塊化

\

3、面向過程的程序設計

# 面向過程是一種以過程為中心的編程思想

# 首先將復雜問題分解為一個個容易解決的問題<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+o6OhobfWveK5/brztcTOysziv8nS1LC01dWyvdbo0ruyvbK9zeqzyTwvcD4KPHA+o6Ohobqvyv3Kx8Pmz/K5/bPM1Nqjw9Pv0dTW0LXEzOXP1jwvcD4KPHA+o6Ohob3ivvbOyszitcTDv9K7uPayvdbov8nS1NPDuq/K/cC0yrXP1jwvcD4KPHA+M6GiyfnD97rNtqjS5TwvcD4KPHA+o6OhobPM0PLW0LXEyfnD97/J0tTA7b3izqrUpM/IuObL37Hg0uvG98q1zOW1xLTm1NqjrMjno7qx5MG/o6y6r8r9o6y1yLXIPC9wPgo8cD6jo6Ghs8zQ8tbQtcS2qNLlw/fIt9a4yr6x4NLrxvfKtczltcTS4tLlPC9wPgo8cD7J+cP3us22qNLlsqKyu8/gzayjoaOho6E8L3A+CjxwPsq1wP2jujwvcD4KPHA+Ly8gZ2xvYmFsLmM8YnI+Ci8vIGludCBnX3ZhciA9IDA7IC8vILao0uU8L3A+CjxwPjxicj4KI2luY2x1ZGUgPHN0ZGlvLmg+PC9wPgo8cD48YnI+CmV4dGVybiBpbnQgZ192YXI7IC8vyfnD99K7uPbN4rK/seTBvzxicj4KPGJyPgp2b2lkIGYoaW50IGksIGludCBqKTsgLy/J+cP30ru49s3isr+6r8r9PGJyPgo8YnI+CmludCBtYWluKCk8YnI+Cns8YnI+CiAgICBpbnQgZyhpbnQgeCk7PGJyPgogICAgPGJyPgogICAgZ192YXIgPSAxMDs8YnI+CiAgICA8YnI+CiAgICBmKDEsIDIpOzxicj4KICAgIDxicj4KICAgIHByaW50Zig="%d\n", g(3));

return 0;
}

void f(int i, int j) // 定義
{
printf("i + j = %d\n", i + j);
}

int g(int x)
{
return 2 * x + g_var;
}
4、函數參數

# 函數參數在本質上與局部變量相同,都是在棧上分配空間

# 函數參數的初始值是函數調用時的實參值

\

實例: #include

int f(int i, int j)
{
printf("%d, %d\n", i, j);
}

int main()
{
int k = 1;

f(k, k++);

printf("%d\n", k);

return 0;
}
函數參數的求值順序依賴於編譯器的實現!!! C語言中大多數運算符對其操作數求值的順序都是依賴於編譯器的實現的!!! int i = f() * g(); //這裡可不要盲目的認為先計算f()再計算g()??? 5、程序中的順序點 # 程序中存在一定的順序點 # 順序點指的是執行過程中修改變量值的最晚時刻 # 在程序達到順序點的時候,之前所做的一切操作必須反映到後續的訪問中 # 每個完整表達式結束時 # &&,||, ?:,以及逗號表達式的每個運算對象計算之後 # 函數調用中對所有實際參數的求值完成之後(進入函數體之前) #include

int main()
{
int k = 2;
int a = 1;

k = k++ + k++;

printf("k = %d\n", k);

if( a-- && a )
{
printf("a = %d\n", a);
}

return 0;
}
函數的缺省認定 # C語言會默認沒有類型的函數參數為int f(i, j) { return i + j; } 等價於
int f(int i, int j) { return i + j; } 小結: 1、C語言是一種面向過程的語言 2、函數可理解為解決問題的步驟 3、函數的實參並沒有固定的計算次序 4、順序點是C語言中變量改變的最晚時機 5、函數定義時參數和返回值得缺省類型為int

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved