官术网_书友最值得收藏!

2.2.5 變量賦值

hello2.c示例中,我們依賴于對name變量的隱式賦值。作為scanf()函數的參數,用戶輸入的任何內容都會存儲在該變量中。但我們可以(也經常)對變量進行直接賦值。可以使用等號(“=”)來表示賦值,例如:

現在,你已成功地將數值7存儲到了變量total中。

你也可以隨時覆蓋該值:

雖然連續賦值有點浪費,但這個C代碼段并沒有什么問題。不過,變量total只能保留一個整數值,所以最近的賦值是最終生效的,本例中為42。

你經常會看到變量同時被定義和分配初始值(用程序員的話說就是初始化):

現在,總數和答案都有了可以使用的值,但兩者仍可根據需要進行更改。這正是變量的作用。

字面量

在這些示例中,我們將簡單的值插入變量,這些值被稱為字面量。字面量只是一個無須解釋的值。數字、單引號內的字符或雙引號內的字符串都屬于字面量:

希望前兩個變量定義看起來很熟悉。但請注意,當我們初始化名為label的字符串時,并沒有給數組設置長度。C編譯器會根據我們在初始化中使用的文字推斷長度。在本例中,label的長度為12個字符,其中11個字符代表“Description”(描述)中的字母,另外一個字符代表結束符'\0'。如果你知道以后在代碼中會用到字符串變量,你可以給它更多的空間,但不應該指定太小的空間。

如果你嘗試分配一個字符串字面量,但該字符串字面量對于char[]變量來說太長,編譯器可能會發出警告:

這是一個相當特殊的錯誤,希望你能發現它很容易修復。順便說一句,你的程序仍然可以運行。請注意,編譯器給你的是一個警告,而不是我們在前面一些編譯器問題的例子中看到的錯誤。警告通常意味著編譯器覺得你犯了一個錯誤,但你可以得到提醒避免潛在錯誤,因此通常最好還是處理警告(并不強制)。

主站蜘蛛池模板: 平乐县| 霍林郭勒市| 乌苏市| 多伦县| 黄冈市| 如东县| 安岳县| 阳春市| 麦盖提县| 日喀则市| 阳泉市| 定日县| 林甸县| 睢宁县| 哈尔滨市| 蒙自县| 浦县| 腾冲县| 乐安县| 永登县| 盈江县| 合江县| 贞丰县| 上饶市| 宿松县| 凤翔县| 桑植县| 天镇县| 莆田市| 麻阳| 永泰县| 开远市| 怀柔区| 丹棱县| 张家川| 富平县| 绥滨县| 定边县| 榆树市| 民和| 宾川县|