C語言中幾個關於初值的問題

2021-07-23 08:44:51 字數 1220 閱讀 6705

在程式中常常需要對變數賦初值,以便使用變數。語言程式中可有多種方法,在定義時賦以初值的方法,這種方法稱為初始化。在變數說明中賦初值的一般形式為:

型別說明符

變數1= 值

1,變數

2= 值

2,……

; 例如:

int a=0,b,4,c=5;

float x=3.2,y=3f,z=0.75;

char ch1='k',ch2='p';

在說明中不允許連續賦值,如a=b=c=5是不合法的。

c語言中有4種運算子,分別是算術運算子(+,-,*,/,等)、關係運算子(>,=,<=,!=,==)、邏輯運算子(&&,||,!)以及賦值運算子。最基本的賦值運算子是=,賦值表示式的一般形式為:

《變數》《賦值運算子》《表示式》

而幾種運算子間的優先次序是:算術運算子----》關係運算子----》賦值運算子,例如:

x=y<=z   等價於    x=(y<=z)

除了在定義變數時給他賦初值,經常也在迴圈結構中賦值來控制迴圈的次數和狀態,比如for(i=0;i<10;i++)。在下次用到i的時候i的值就是10,如果要繼續使用還要根據需要再賦一次值。在用迴圈語句計算1-100的累加和時通常要定義乙個變數s作最終輸出的數,在迴圈語句裡通常這麼寫:s+=i;表示以s加上當時的i賦給s,但這時必須要在迴圈前給s賦初值,否則系統會給s賦乙個隨機的值,可能是0,可能是其他值,直到程式給它賦了乙個具體的值。因此,不提倡定義變數時不初始化值。

然後是關於指標的初始化,使用指標變數應該注意幾個問題:

(1)、不要使用沒有賦值的指標變數,使用指標變數前一定要對他正確賦值。

(2)、使用指標變數訪問陣列元素時,要隨時檢查指標的變化範圍和指標變數的當前值,始終不能超過陣列的上下界。例如:

main()

結果為:

這個程式第乙個for語句迴圈結束時,p已經指向a[10],已經超出了a陣列的範圍,再執行第二個for迴圈,p指向的都不是a陣列的元素範圍,因此,輸出的資料不是我們輸入的資料。想要程式能正確輸出我們輸入的資料,應該在第二個迴圈前使p指標再次指向a陣列的起始位置。應該改為:

int main() 

正確結果為:

關於c語言中的return問題

最近看32的 比較多,發現乙個小小的細節有點疑問。原來我們學習c語言時對於返回值,如果要返回0,那麼語句就是return 0 如果返回1,那麼語句就為return 1 但是在32 裡面我看見了return 0 還有return 1 他們有差別麼?今天在資料結構中也看見了類似的問題,決定來驗證一下 測...

關於C語言中的換行問題

1 換行,使用換行符 n 例如 printf hello n 2 回車換行,使用回車換行符 r n 例如 printf hello r n 3 對於表示式較長,想分行寫的問題,可採用兩種方式 方法一 使用 結尾作為換行標記。printf hello world 值得注意的是,針對字串換行,需要注意換...

關於c語言中用複數的問題

前段時間電腦啟動不了了,就重灌了個系統。一直很懶,所以到現在還沒裝matlab,學自動化的沒有matlab真的受不了,很多東西都不能寫。不過好在安裝了vs2010,有因為一直覺得程式語言得學好乙個,所以就複習複習c語言。至於之前雄心勃勃得想學會c qt,我覺得還是實在一些學學c語言吧。時域頻域的轉換...