變量是對程序中數據的存儲空間的抽象,變量的屬性,數據類型:變量所持有的數據的性質(操作屬性)
一、局部變量
在函數內定義,只在本函數內有效。main中定義的變量只在main中有效,不同函數中同名變量,占不同內存單元。形參屬于局部變量。可定義在復合語句中有效的變量
局部變量可用存儲類型:auto register static (默認為auto)
函數舉例:
main()
{ int a,b;
a=3;
b=4;
printf("main:a=%d,b=%d\\n",a,b);
sub();
printf("main:a=%d,b=%d\\n",a,b);
}
sub()
{ int a,b;
a=6;
b=7;
printf("sub:a=%d,b=%d\\n",a,b);
}
運行結果:
main:a=3,b=4
sub:a=6,b=7
main:a=3,b=4
二、全局變量
在函數外定義,可為本文件所有函數共用,從定義變量的位置開始到本源文件結束,及有extern說明的其它源文件。
外部變量說明:extern 數據類型 變量表;
外部變量定義與外部變量說明不同;
若外部變量與局部變量同名,則外部變量被屏蔽
外部變量可用存儲類型:缺省 或 static
應盡量少使用全局變量,因為:
Y全局變量在程序全部執行過程中占用存儲單元Y降低了函數的通用性、可靠性,可移植性Y降低程序清晰性,容易出錯。
float max,min;
float average(float array[], int n)
{ int i; float sum=array[0];
max=min=array[0];
for(i=1;iif(array[i]>max) max=array[i];
else if(array[i]array[i];
sum+=array[i];
}
return(sum/n);
}
main()
{ int i; float ave,score[10];
/*Input */
ave=average(score,10);
printf("max=%6.2f\\nmin=%6.2f\\n
average=%6.2f\\n",max,min,ave);
}
- 局部變量默認為auto型uregister型變量個數受限,且不能為long, double, float型
- 局部static變量具有全局壽命和局部可見性
- 局部static變量具有可繼承性
- extern不是變量定義,可擴展外部變量作用域
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
程序
+關注
關注
115文章
3720瀏覽量
80359 -
變量
+關注
關注
0文章
607瀏覽量
28257 -
存儲空間
+關注
關注
0文章
54瀏覽量
10643
發布評論請先 登錄
相關推薦
跟著狄泰唐老師學C語言進階教程的筆記之變量的屬性
extern "C"{int f(int a, int b){ return a + b;}}7.小結?auto 變量存儲在程序的棧中,默認屬性?static 變量存儲在
發表于 05-28 10:40
嵌入式C語言之變量與常量詳解
目前,很多的C語言教材都是針對通用的計算機編程,創客學院嵌入式開發培訓講師針對嵌入式軟件的開發特點。講解嵌入式C語言在各種項目中要用到的知識點。 淺談嵌入式C語言之變量與常量詳解
發表于 07-05 09:51
高效的C編程之變量類型
14.8 變量類型 ARM C編譯器支持基本的數據類型:char、short、int、long long、float和double。表14.2說明了armcc對C語言所使用的數據類型的映射。 表
發表于 10-17 16:50
?3次下載
C語言變量應用詳解
變量其實只不過是程序可操作的存儲區的名稱。C 中每個變量都有特定的類型,類型決定了變量存儲的大小和布局,該范圍內的值都可以存儲在內存中,運算
發表于 03-18 11:18
?279次閱讀
評論