C語言自學攻略-變數與常數

更新於 發佈於 閱讀時間約 5 分鐘

變數就是一個「內容會改變」的數,舉凡文字、數字、布林值 ( 邏輯 )、陣列...等內容格式,都可以是變數所包含的內容。

而要儲存變數,我們當然需要給他一個位置空間嘛,而我們在撰寫程式時,你可以把位置空間視為電腦的記憶體(或稱內存)。

以C語言來說,要宣告一個變數儲存資料,我們需要給他一個身分,我們稱其為變數型態或者資料型態,而每個資料型態給你的空間各不相同,如下圖所示。

變數所佔的記憶體空間

raw-image

不過我們也不用死記硬背,你大概了解就好,大不了就回來查。

變數與常數宣告

好,這邊我們撰寫一個 C 程式,如下所示:(可以在你喜歡的環境運行程式碼,現在就連網路上都有線上編譯器給你直接運行程式碼,非常方便)

#include <stdio.h>

int main() {
// 變數宣告
int age = 20; // 整數變數,用於儲存年齡
float height = 175.5f; // 浮點數變數,用於儲存身高(公分)
char grade = 'A'; // 字元變數,用於儲存等級
char name[] = "John"; // 字串變數,用於儲存名字

// 常數宣告
const double PI = 3.14159; // 常數,用於儲存圓周率
const int DAYS_IN_YEAR = 365; // 常數,用於儲存一年中的天數

// 輸出變數與常數
// 文字後接變數格式,就能輸出: 名字:John
// 另外"\n"代表空一行,是一個控制符號,即下次輸出會換到第二行做輸出
// 以下是要輸出變數的基本格式,也就是 printf()。
printf("名字: %s\n", name);
printf("年齡: %d\n", age);
printf("身高: %.1f cm\n", height);
printf("成績: %c\n", grade);
printf("圓周率: %.5f\n", PI);
printf("一年有 %d 天\n", DAYS_IN_YEAR);

return 0;
}

有一些值得一提的觀念:

  1. #include <stdio.h>這行程式碼的作用是 引入標準輸入輸出函式庫 (stdio.h),讓我們可以使用 printf() 這類函式來顯示訊息。
  2. C 語言的程式從 main() 函式開始執行,{} 內的程式碼是主要內容。
  3. // 是單行註解的意思,也就是電腦不會理會這些東西,註解可以幫我們理解程式碼的運作。(/* */是多行註解)
  4. ;代表語句的結束,要記得添加!
  5. 變數一開始宣告時沒有賦值的話,可能會有記憶體殘值,即原本留在那個記憶體的垃圾值。
  6. 注意身高那邊175.5這個數字本身為double型別,加上f代表175.5這個數字為float型別,注意,我們討論的是175.5這個數字本身。讀者可以把這個觀念記住。
  7. 常數宣告時一定要賦值,即必須指定內容。
  8. char name[]表示這是一個字元陣列。不指定陣列大小時,編譯器會自動分配空間。"John":這是一個字串,C 語言中的字串是以 NULL 結尾的字元陣列,即自動補上'\0'。所以字串的內部結構實際上是:'J', 'o', 'h', 'n', '\0''\0' 是字串結束標記)。總共佔5個字元的記憶體空間。
  9. 輸出格式可以參考下一單元,現在你只需要知道,在 printf() 內,% 符號用來代表變數的類型:
raw-image
  1. 最後 return 0; 代表程式執行成功,如果沒有特別的錯誤,main() 會順利結束。

以上就是目前讀者需要掌握的細節觀念。

超出變數儲存範圍後的變化(以char資料型態舉例)

當超出範圍時,數值會「環繞」到另一端。將它想像成一個環形變化。

範例:

#include <stdio.h>
int main() {
char c = 127; // 有號 char,最大值為 127
c = c + 1; // 超出範圍
printf("%d\n", c); // 輸出: -128(環繞到最小值即-128)
return 0;
}
//其餘以此類推: 129對應到-127...c=255時,c會變成-1,c=256時,輸出為0,c=257時,輸出為1

無號數也是同樣道理(unsigned):

#include <stdio.h>
int main() {
unsigned char c = 255; // 無號 char,最大值為 255
c = c + 1; // 超出範圍
printf("%u\n", c); // 輸出: 0(環繞到起點)
return 0;
}
//其餘以此類推: 257對應到1...c=255+256時,輸出255,接下來c=255+257時,輸出又變回0
留言
avatar-img
留言分享你的想法!
avatar-img
電資鼠 - 您的學習好夥伴
8會員
206內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
2025/03/07
本章節將探討左下三角稀疏矩陣。
Thumbnail
2025/03/07
本章節將探討左下三角稀疏矩陣。
Thumbnail
2025/03/07
相信讀者現在對於鏈結串列有了更多的認識,所以我再進一步,示範更多關於鏈結串列的操作,這部分示範會將程式模組化。將鏈結串列的操作寫進一個標頭檔,並在主程式中引入。
Thumbnail
2025/03/07
相信讀者現在對於鏈結串列有了更多的認識,所以我再進一步,示範更多關於鏈結串列的操作,這部分示範會將程式模組化。將鏈結串列的操作寫進一個標頭檔,並在主程式中引入。
Thumbnail
2025/03/07
本章節示範透過「陣列索引」和「指標運算」兩種方式來存取同一個二維陣列 a,並印出相同的數值以及對應的位址,以說明它們其實指向的是同一塊連續的記憶體空間。本文將依序解釋各段程式碼,並示範可能的執行結果與背後原理。
Thumbnail
2025/03/07
本章節示範透過「陣列索引」和「指標運算」兩種方式來存取同一個二維陣列 a,並印出相同的數值以及對應的位址,以說明它們其實指向的是同一塊連續的記憶體空間。本文將依序解釋各段程式碼,並示範可能的執行結果與背後原理。
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
就簡單介紹一下static
Thumbnail
就簡單介紹一下static
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
高中數學主題練習—C計算(一)
Thumbnail
高中數學主題練習—C計算(一)
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News