例子如下:
成都創(chuàng)新互聯專業(yè)為企業(yè)提供宜章網站建設、宜章做網站、宜章網站設計、宜章網站制作等企業(yè)網站建設、網頁設計與制作、宜章企業(yè)網站模板建站服務,10年宜章做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
直接編譯,程序輸出結果中任意輸入兩個數字,程序執(zhí)行結果如下圖所示:
知識擴展:
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
C語言屬于高級程序語言的一種,它的前身是“ALGOL”。其創(chuàng)始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的局限性,因為它只能用于UNIX系統上。然而隨著科學技術的進步,計算機工業(yè)的發(fā)展,C語言逐漸脫離UNIX。1987年美國標準化協會制定了C語言的國際標準,簡稱“ANSI C”,從此以后它便成為一種廣泛使用的程序語言。
定義int arr[5] = {20, 10, 5, 39, 88};時,系統產生一個有5個元素的一維數組,5個元素分別是arr[0]到arr[4],對應的各個元素的地址分別是arr到arr+4。
當用sum(arr, arr + 5));計算數組總和時,sum是一個自定義函數,其內容是由編程人書寫的。
如果這個函數是這樣寫:
int sum(int*a,int*b){
int*p,s;
for(p=a,s=0;pb;p++)
s+=*p;
return s;
}
就能得到正確的結果。
你說的“arr指向數組的首地址”是正確的,但“對arr+5后不是相當于arr[6]了吧”是錯誤的,因為arr+5是元素arr[5]的地址。但即使這樣,如果自定義函數不加arr[5](像上面的例子),程序是能夠得到正確的結果的。但是,如果不這樣寫,可能會造成這樣數組下標越界。
這取決于函數sum是怎樣寫的。
最主要的,sum后面的arr與arr+5,只是兩個參數,并不是加法的對象,這一點一定要搞清楚。
最基礎的常識,C的所有語句必須在函數內,且必須有main函數的
你的
result=add(1,2);
不在任何函數內,且程序沒有主函數.當然錯了
正確的
#includestdio.h
int
add(int
a,int
b)
//函數定義沒有問題
{
return
a+b;
}
int
main()
//要有主函數
{
int
result;
//變量必須先申明
result=add(1,2);
printf("%d\n",result);
return
0;
}
#include?stdio.h
double?f(double?x)
{return(x*3+1);}
void?main(){
double?x;
scanf("%lf",x);
printf("%lf",f(x));
}