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
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
留言
avatar-img
留言分享你的想法!

































































你可能也想看
Google News 追蹤
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。