全面學習C語言【一】:變量、常量、表達式、判斷、註釋語法

🌹筆者的前言

照理來說 在正常的大學裏 都是先教C這種基礎語言再教Java之類的
甚至在大部分的本科院校的非計算機相關專業 也會教C語言 因爲C語言的思維方式不僅在計算機中有用 在很多方面都會有所幫助
但我這奇葩學校直接教Java了 C壓根沒教…

So 沒辦法 只能自己學習了
在學習的過程中 總結一下學習筆記 以方便以後回顧

:由於筆者已經會Java了 C的一些概念和Java是相通的 因此部分變量函數之類的詳細的基本概念就不在此闡述了
部分筆者已經會了的知識點和概念 或者部分C和Java重複的概念 比如運算符 也不在此闡述了

因此 若您是第一次接觸編程語言 並且想學習C語言 建議移步別的博客
但若您已經瞭解了部分編程語言的基礎知識(比如Java) 那麼再閱讀本文章 將會使您省去很多學習成本
在本文章中所提到的知識點基本都是C語言和Java的不同點


一、變量

🎈定義變量

格式:類型 變量名;

例如:

int name;

或 同時定義多個變量:

int price,count;

:在C99規範中 可以在任何地方定義變量 在需要使用到變量的時候立刻可以定義出來然後使用
但在ANSI C規範中 只能在代碼開頭的地方定義變量 初始化之後 才能在下面的代碼中進行使用

🎈變量名的格式

變量名只能由字母 數字 下劃線組成
數字不能爲第一位
且C的保留字不能用於作爲變量名

保留字:
在這裏插入圖片描述

🎈變量的賦值

格式:類型 變量名=初始值;

例如:

int age=0;

🎈變量的輸入

🚩讀整數

在C中 使用scanf()函數來讀入用戶的輸入

語法:scanf("%d", &price);
要求scanf函數讀取下一個輸入的整數 然後將讀入的結果賦值給名爲price的變量

需要注意的是 在變量名的前面 須帶有&

:在整數的時候纔是%d 若爲其它類型 則不一定是%d

可以同時讀入多個整數

像這樣:

scanf("%d %d",&a,&b);

🎈變量的輸出

🚩整數

在C中 使用printf()函數來輸出
語法:print("%d", number);

比如:

print("%d", 123);

:在整數的時候纔是%d 若爲其它類型 則不一定是%d

可以同時輸出多個整數

像這樣:

printf("%d + %d = %d",a,b,a+b);

🚩浮點數

兩個整數的運算結果只能是整數
10和10.0在C中是完全不同的數

爲了使運算的結果帶有浮點數 有兩種解決方法:
1、使常量變成浮點數
比如 5/2 變成 5.0/2
在C中 若有一方是浮點數 那麼最終會將所有參與運算的變量都先變成浮點數再進行運算
2、在定義變量的時候 將變量的類型改爲double(雙精度浮點數)
當變量的類型爲double的時候 在接收時就不能是%d了 而是應該改爲%lf
同樣 在輸出的時候也不能爲%d了 而是應該改爲%f

二、常量

🎈常量的定義

在C中 使用const定義一個常量

const修飾符加在變量定義的前面 給該變量加上const(恆定的)屬性
其意爲 該變量的值一旦被初始化 即無法再修改了(已經定死了)

例如:

const int COUNT=100

在定義常量的時候 在被賦初始值之後 它就永遠只能是這個值了

常量的命名通常爲全部大寫

在這裏的100 這種像是魔術一樣 不知道具體是什麼的數 被稱爲魔法數(Magic Number)
因此 使用有意義的名稱更容易使人理解

三、表達式

在表達式中 參與運算的數被稱爲算子 無論是變量還是常數 都是算子
用於計算的符號被稱爲運算符(沒錯 就跟數學裏的運算符一個概念)

在C中 並沒有冪的相應運算符 因此 若要求n次方 只能xx*x… 或者用循環來計算

🎈運算符

在C中 賦值也是運算 也有結果
比如 a=2的結果是a被賦予了值 該值爲2

a=b=2 相當於是 a=(b=2)
這是因爲 賦值運算符的順序是自右向左

四、判斷

🎈if判斷

🚩C的if判斷語法和Java的一樣

if ()
{
	xxxx...
}

🚩C也有if…else

if ()
{
	xxxx...
}
else
{
	yyyy...
}

🚩省略花括號

if語句也可以沒有花括號{}

比如:

if (a>b)
	printf("%d",123);

當沒有大括號的時候 緊跟在if後面的那句語句將作爲if成立後執行的語句

同樣的 else也可以沒有花括號

比如:

if (a>b)
	printf("success");
else
	printf("%d",404;

在省略了花括號之後 只有if或else的後面一句語句會生效
而有了花括號之後 可以執行一個語句塊 即多行代碼

🚩嵌套判斷

在沒有花括號的時候 else只能和最近的if進行匹配
比如:

if ( a == 6 )
    if ( b == 7 ) 
        printf("A");
else
    printf("B");

此時的縮進看起來像是else對應外面的if
然而實際上對應的依舊是裏面的if 因爲距離裏面的if最近

因此 爲便於理解 建議在if和else後面都跟上花括號{}

🚩級聯判斷

在C中 也是使用else if

if (a>0)
{
	printf("1");
}
else if (a==0)
{
	printf("2");
}
else
{
	printf("3");
}

🎈switch…case判斷

switch只能判斷整數型的結果
case後的常量可以爲常數 也可以爲常數計算的表達式

switch()
{
	case 1:
		printf("1");
		break;
	case 2:
		printf("2");
		break;
	default:
		printf("default");
		break;
}

switch語句可以看作是一種基於計算的跳轉
當符號計算控制表達式的值後 程序會跳轉到相匹配的case處
分支標號只是說明switch內部位置的路標 並不是對代碼進行分割
當遇到break時 纔會停止繼續往下執行

五、註釋

🎈單行註釋

在C中 單行註釋用雙斜槓//表示

//是C99的註釋 ANSI C不支持

🎈多行註釋

多行註釋格式:

/*    */

多行註釋ANSI C也支持


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章