C語言 變數(variable)

閱讀時間約 10 分鐘

說明

在電腦中儲存資料的容器,就像是一個人的稱呼。如小明(變數名稱)是個男生(值),因此當我們聽到小明(變數名稱)這個名字,第一時間會意會到他是個男生(值)。

重點

  供回來複習時學習,如果是初學者可以先跳到分類開始,遇到不會的或者是自己有疑問的,再回來這查詢便可。

△定義變數

  當我們想要設置一個變數的時候,只要遵守這個格式就行了。
<變數類型> <變數名稱> = <值>;
  = ;
int a = 1;//定義一個整數a,並賦值1
<儲存類> <變數類型> <變數名稱> = <值>;
   = ;
auto int a = 1;//定義一個自動變數,並賦值1
  由於本篇主要在講變數,因此不細談儲存類,若想更多加了解儲存類,歡迎點我

△文字的定義

  在電腦世界裡,我們會用' '以及" "括弧內容去區分文字。' '是專門括弧字元的,而" "則是括弧字串的。字元與字串在下方有解釋喔~

△文字與數字的差別

  '1'與1同樣都是1,卻有很大的不同。文字的特點在於,無論內容是否是我們常見的數字,它都無法用於計算,因為它只是"文字",而數字才是可以用來計算的。

△整數與浮點數

  首先,浮點數雖然看起來很奇怪,但其實它就是小數的意思。而電腦當中的整數與小數也是不共通的。當一個變數類型是整數時,我們是無法給它一個小數的值。反之小數也不能擁有整數的值,即使是整數也必須在後方補上小數點以及數個0。
#include "stdio.h"
float a=1;//定義小數a,並賦值1
int main(void){
  printf("%f",a);
}
--------------------------------結果---------------------------------
1.000000

signed(有號)unsigned(無號)的區別

  由於電腦的容量有限,每一個變數所占空間都要用得很小心,因此程式語言中的所有變數都有一個範圍,以防止空間的濫用。在所有跟整數有關的變數中,範圍都是由負數範圍一直到正數範圍,如short的範圍在-32768~32767之間。但剛才我們也說了,我們要盡可能省下空間。因此,當今天我們確定這個數字不會有負數時,就可以使用unsigned(無號)去掉負號讓它的空間只會包含0~正數,以此擴大它的範圍。而unsigned short 就會把-1~-32768的空間給予正數,變成範圍在0~65535之間。
<有無號> <整數類型> <變數名稱> = <值>;
unsigned/signed   = ;
unsigned int a =1;//定義一個無號的整數a,並賦值1

e是什麼符號?

  我們經常會看到e這個符號,特別是在浮點數的範圍能看見,如3.4e-38的意思其實就是3.410的-38次方,即是(x)e(y)為x*10的y次方,且x與y可為正或負數。

分類

  平常,我們可能不會太在乎數字與文字的差別,認為它們就是一堆可認知的符號。但實際上在程式語言當中,所有的資料都有嚴密的分類。如:

△字元、字符(char)

  簡單來說就是指單個字,但嚴格來說是1byte能夠表達的字,也就是ASCII碼當中小於(不含)128的所有字。至於一般的中文字由於不能由1位元表達出來,因此不被視為字元喔。

△字串、字符串(string)

    也就是所謂的一串字,但在C語言中它卻是以字元的集合存在。每一個字串的最後一個字都會是"\0",相當於是告訴電腦,這一串字已經結束了。

△短整數、短整型(short int)

  2bytes能表達的數字類型,範圍在-32768~32767之間。
  若為unsigned short,範圍則是在0~65535之間,

△整數、整型(int)

  4bytes能表達的數字類型,範圍在-2147483648~2147483647之間。
  若為unsigned int範圍則是0~4294967295。

長整數、長整型(long int)

  4bytes能表達的數字類型,範圍在-2147483648~2147483647之間。
  若為unsigned long範圍則是0~4294967295。

超長整數、超長整型(long long int)

  8bytes能表達的數字類型,範圍    在-9223372036854775808~9223372036854775807之間。
  若為unsigned long long範圍則是0~18446744073709551615。

△單精度浮點數、單精度浮點值(float)

  4bytes能表達的小數類型,範圍在±3.4e-38~±3.4e+38之間,而有效位數為前7位,但能絕對保證的只有前6位數字。點我看更多關於浮點數

△雙精度浮點數、雙精度浮點值(double)

  8bytes能表達的小數類型,範圍在±1.79E-308 ~ ±1.79E+308之間,而精確位數前16位,但絕對保證的只有前15位數字。

長雙精度浮點數、長雙精度浮點值(long double)

  16bytes能表達的小數類型,範圍在±1.79E-308 ~ ±1.79E+308之間,與double相同,但是精確位數則是前19位,而絕對保證的只有前18位數字。

應用

宣告與輸出

#include "stdio.h"
#define __USE_MINGW_ANSI_STDIO 1
int main(void){
  此處的輸出可參考格式化輸出
  char a = 'A';//字元宣告
  printf("%c\n",a);//%c 指字元
  char b[] = "快樂賣肝:(";//字串(字元集合)宣告
  printf("%s\n",b);//%s指字串
  short d = 1;//短整數宣告
  printf("%d\n",a);//%d指整數
  int e = 1;//整數宣告
  printf("%d\n",e);
  long f = 1;//長整數宣告
  printf("%ld\n",f);//%ld 只是%d 前面加個l表示長整數
  long long g = 1;//超長整數宣告
  printf("%lld\n",g);//同理兩個l 表示超長整數
  float h = 0.5;//單精度浮點數宣告
  printf("%f\n",h);//%f 代表float
  double i = 0.5;//雙精度浮點數宣告
  printf("%lf\n",i);//%lf 代表double
  long double j = 1.5;//長雙精度浮點數宣告
  printf("%Lf\n",j);//%Lf 代表long double
}
--------------------------------結果---------------------------------
A
快樂賣肝:(
有點想睡:(
65
1
1
1
0.500000
0.500000
1.500000

運算符

#include "stdio.h"
int main(void){
  printf("1 + 1的值為: %d\n",1+1);//加法
  
  printf("1 - 1的值為: %d\n",1-1);//減法
  printf("1 * 2的值為: %d\n",1*2);//乘法
  printf("4 / 2的值為: %d\n",4/2);//除法
  printf("10 \% 5的值為: %d\n",10%5);//取餘數
  int a =0;
  a++;//a的值再加上1
  printf("a++ 的值為: %d\n",a);
  int b = 2;
  b--;//b的值再減1
  printf("b-- 的值為: %d\n",b);
  int text = 10;
  int x =1;
  x += text;//相當於是x = x + text的簡寫
  printf("x += text的值為: %d\n",x);
  x -= text;//相當於是x = x - text的簡寫
  printf("x -= text的值為: %d\n",x);
  x *= text;//相當於是x = x * text的簡寫
  printf("x *= text的值為: %d\n",x);
  x /= text;//相當於是x = x / text的簡寫
  printf("x /= text的值為: %d\n",x);
  x = 12;
  x %= text;//相當於是x = x % text的簡寫
  printf("x \%= text的值為: %d\n",x);
}
--------------------------------結果---------------------------------
1 + 1的值為: 2
1 - 1的值為: 0
1 * 2的值為: 2
4 / 2的值為: 2
10 % 5的值為: 0
a++ 的值為: 1
b-- 的值為: 1
x += text的值為: 11
x -= text的值為: 1
x *= text的值為: 10
x /= text的值為: 1
x %= text的值為: 2

結論

  變數是很基本的內容,一定要學好唷。  
為什麼會看到廣告
avatar-img
12會員
18內容數
這裡是來自 高科大 資管系二年級的學生,希望能在學習的過程中,也分享這些知識給大家。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
咖啡因學習教室 的其他內容
前言 輸出 printf 格式控制字元、格式控制符(format char) 前言 輸出控制字元、輸出控制符 轉義字元、轉義符 格式控制字元、格式控制符 輸入 scanf gets gets與scanf差異
auto(自動)、register(暫存器)、static(靜態)、extern(外部),以作用範圍(scope)、存儲時期(life time)、連結(linkage)的不同作為區別。
前言 輸出 printf 格式控制字元、格式控制符(format char) 前言 輸出控制字元、輸出控制符 轉義字元、轉義符 格式控制字元、格式控制符 輸入 scanf gets gets與scanf差異
auto(自動)、register(暫存器)、static(靜態)、extern(外部),以作用範圍(scope)、存儲時期(life time)、連結(linkage)的不同作為區別。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
想要進入工程師的世界,首先要先學會架設自己的Build code環境,有了編譯環境,接下來就可以安心的撰寫你想要的C語言程式啦! 如果你不知道該從何下手,那不妨先照著本篇文章的步驟做,Violet一步一步教你並解釋每個步驟的意義,很快你就會得到一個能編譯C語言程式碼的虛擬基環境哦!
Thumbnail
在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。
Thumbnail
Ç在葡語被稱為「cedilha」。除了葡語之外,來看看還有哪些語言有這個符號吧!
Thumbnail
這篇文章將會從基本概述到射線偵測應用的詳細步驟,講述運用射線改變特定圖層中,射線命中的物件顏色。
Thumbnail
  雖然Dart 語言本身支援跨平台的編譯方式,但在實務開發時還是不免需要使用外部非Dart語言所提供的函式庫進行功能開發且由於C 語言是最為廣泛且通用的程式語言,因此Dart語言也有提供支援與C語言函式庫互通性的方式;本篇主要是以MSVC作為C的編譯器來實作說明如何引用C語言會遇到的作法。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
Ironman伴讀小書僮又來了! 今天要念英文繪本給Piupiu和Piu 哥聽。 防疫期間在家育兒真的是很挑戰英雄,還是拯救地球簡單一點~ 跳一下來到繪本介紹, A Chair for My Mother -by Vera B. Williams 這本就是勸生女兒的繪本呀!故事中的小女孩孝順又貼心,
第n項的費式數列為何? #include int main() { int a0=0, a1=1, a2=1, i=3, fib, n; scanf("%d", &n); if (n==0) printf("0\n"); else if (n printf("1\n"); els
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
想要進入工程師的世界,首先要先學會架設自己的Build code環境,有了編譯環境,接下來就可以安心的撰寫你想要的C語言程式啦! 如果你不知道該從何下手,那不妨先照著本篇文章的步驟做,Violet一步一步教你並解釋每個步驟的意義,很快你就會得到一個能編譯C語言程式碼的虛擬基環境哦!
Thumbnail
在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。
Thumbnail
Ç在葡語被稱為「cedilha」。除了葡語之外,來看看還有哪些語言有這個符號吧!
Thumbnail
這篇文章將會從基本概述到射線偵測應用的詳細步驟,講述運用射線改變特定圖層中,射線命中的物件顏色。
Thumbnail
  雖然Dart 語言本身支援跨平台的編譯方式,但在實務開發時還是不免需要使用外部非Dart語言所提供的函式庫進行功能開發且由於C 語言是最為廣泛且通用的程式語言,因此Dart語言也有提供支援與C語言函式庫互通性的方式;本篇主要是以MSVC作為C的編譯器來實作說明如何引用C語言會遇到的作法。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
Ironman伴讀小書僮又來了! 今天要念英文繪本給Piupiu和Piu 哥聽。 防疫期間在家育兒真的是很挑戰英雄,還是拯救地球簡單一點~ 跳一下來到繪本介紹, A Chair for My Mother -by Vera B. Williams 這本就是勸生女兒的繪本呀!故事中的小女孩孝順又貼心,
第n項的費式數列為何? #include int main() { int a0=0, a1=1, a2=1, i=3, fib, n; scanf("%d", &n); if (n==0) printf("0\n"); else if (n printf("1\n"); els