10.10日上課簡記(常量與變數)
10.10日上課簡記
1.變數
在程式執行過程中,其值可以改變的量。
#include<stdio.h>
int main()
{
int i;
int j;
int sum=0;
scanf("%d%d",&i,&j);
sum=i+j;
printf("%d\n",sum);
return 0;
}
該例中,i,j,sum均為變數,它們是變數的名字,它們空間中儲存的值稱為變數的值。變數必須先宣告再使用。語句int i;和語句int j;分別聲明瞭變數i和j。而語句int sum=0;在宣告變數sum的時候又給它賦值為0,稱為初始化。變數的定義是在程式的執行過程中,其值可以改變。本例中的sum最初的值是0,但執行到sum=i+j;語句後,sum的值發生了改變,所以它為變數。
有同學會說,i和j是不是變數?它們當然也是變數。在宣告語句中int i和int j中,儘管沒有給它們賦初值,但它們的空間裡會有一個隨機值(上節講過),然後在scanf中又給它們輸入了新的值,所以它們的值在執行過程中可以進行改變,因而是變數。假如上述程式中沒有scanf語句,也就是說i和j的空間中一直儲存的是最初的隨機值,它們還是變數,因為人家的值可以改變,是程式中沒有進行改變而已。
通常情況下,相同型別的變數可以這樣寫:int i, j, sum=0;
2.常量
與變數的定義相反,常量是指在程式執行過程中,其值不能改變的量。
例如:100就是一個整型常量,無論太陽升起還是落下,100永遠就是100.
其實,對於我們每個學生來說,假設程式執行時間是大學四年,在這四年裡,我們的學號(假設是20180634)它就是常量,同理我們的性別(例如:男)和名字(張三)也是常量,而我們的身高、體重和知識量就是變數。
此外,還有實型常量,例如0.1;2.1E5。無論是在赤道還是兩極,這兩個數字也變不成0.2。有同學會說,0.1+0.1就變成0.2了,但0.1還是0.1,你不能說它是0.2.
綜述:常量就是一個具體的值。例如:int sum=0;該語句中,sum是變數,它的值可以改變,而0是常量,0的值不能改變。
還有字元常量:’A’,’0’。轉義字元也是常量,例如’\n’就是一個轉義字元,功能是換行,因為換行這個符號無法從鍵盤錄入,所以聰明的程式設計人發明了轉義字元,這是智慧的結晶。
字串常量:”lcy”,”Big Date’
還有一個比較好用的符號常量。
#define PI 3.14
例如:
#include<stdio.h>
int main()
{
double r,s;
scanf("%lf",&r);
s=2*3.14*r;
printf("s=%lf\n",s);
return 0;
}
思考:假設程式上千行,裡面涉及到50個地方用到圓周率。最初的時候設定圓周率為3.14。某一天,圓周率需要設定為3.1,你該怎麼做?50個地方一個一個去改嗎?還是。。。。。。