C語言基礎知識學習(一)

2020-12-12 四海趣聞

C程序基礎

1. 標識符

在程序中使用的變量名、函數名、數組名、指針名、標號等稱為標識符.

標識符分類

a) 關鍵字

原先的C89標準中只有32個關鍵字然後在1999年之後進行了兩次技術修正,新出臺了C99標準新增加了5個關鍵字 分別是:restrict, inline, _Complex, _Imaginary, _Bool

b) 預定義標識符

包括C語言提供的庫函數、預編譯處理命令。這類標識符可以另做他用,但將會失去原意,所以一般不另他用。

c) 用戶標識符

根據需要定義的標識符。一般用來給變量、函數、數組、文件等命名。

用戶標誌符如果與C語言的關鍵字重名,系統報錯;若與標準庫函數重名,系統不報錯,但預定義標識符將會失去原意,代之以用戶新定義的含義。顯然如果後面用到這個函數將會報錯。

標識符注意事項:

1. 不能使用關鍵字作為用戶標誌符

2. 只能用數字,下劃線,字母組合(數字不能做開頭)

3. 標識符最好有含義

4. 大小寫代表的意義不同

5. 儘量不要與某個庫函數相同,如果相同這個庫函數將失去作用

2. 數據類型

數據類型分類

a) 基本數據類型

整型

三種形式:十進位、八進位、十六進位

八進位數據前面加0

十六進位數據前面加0X或0x

實型

小數形式:數值加小數點,必須要有小數點. 如24.或24.0

指數形式:e或E後跟一個整數表示10的冪數,e或E之前必須有非0數字. 如.45e4或4.e4

float變量的有效數字是6-7位,超過7位以後都是無效數字double變量的有效數字是15-16,超過16位以後都是無效數字 例如:

float apple = 0.4; 100*0.4=40.000000

而100*apple=40.000001(以%f輸出)因為0.4被強制轉化為double,所以正確,而100*apple的結果中整數已經佔了2位,故後面的01是無效的,但是比較大小時40.000001>40.000000, 而不是相等.

字符型

字符常量只能用單引號括起來

字符常量是用ASCII碼表示,在比較字符時就是將字符轉換為對應的ASCII值進行比較,在if語句中字符型數據就是對應的ASCII值

字符常量可以是字符集中的任意字符,數字被定義後就原數字不能參與運算。如』5』與5不同

字符常量通常佔一個字節內存,而字符串常量所佔內存等於字符串常量加1。因為字符串的結束標誌存放一個字符『\0』.

b) 構造數據類型

c) 指針數據類型

d) 空數據類型

數據類型轉換

a) 自動轉換

運算時必須轉換為同一類型,轉換按數據長度曾加的方 向進行,以保證精度不降低,所有浮點型都要轉換為double型再進行運算,char和short必須轉換為int型,在賦值運算時=右邊的轉換為左邊的。

b) 強制類型轉換

通過類型轉換運算實現的,一般形式為(類型說明符)(表達式)如(int)(x+y)將x+y強制轉換為int型,與(int)x+y不同。

無論強制轉換或是自動轉換,都只是為了本次運算的需要而對變量的數據進行臨時性的轉換,不改變對數據說明是對該變量的定義的類型。

3. 數據運算

運算符

a) 按功能分類

算術運算符:+ - * / % ++ --

關係運算符: > >= < <= == !=

邏輯運算符:! && |||

位運算符:<< >> ~ | & ^

賦值運算符:= (+= -= *= /= %=)

條件運算符:?:

逗號運算符:,

指針運算符:* &

求字節運算符:sizeof

強制類型轉換運算符:(類型標識符)

分量運算符:->

下標運算符:[]

其他:函數調用運算符()

b) 按運算對象個數

單目

雙目

三目

優先級與結和性

醋-初等,4個: ( ) [ ] -> 指向結構體成員 . 結構體成員

壇-單目,9個: ! ~ ++ -- -負號 (類型) *指針 &取地址 sizeof長度

酸-算術,5個: * / % + -減

味-位移,2個: << >>

灌-關係,6個: < <= > >= == 等於 != 不等於

味-位邏,3個: & 按位與 ^ 按位異或 | 按位或

落-邏輯,2個: && 邏輯與 || 邏輯或

跳-條件,1個,三目: ? :

福-賦值,11個: = += -= *= /= %= >>= <<= &= ^= |=

豆-逗號,1個: ,

結合方向自右向左的只有三類:賦值、單目和三目

同一優先級的運算順序由結合方向決定

口訣:單(單目)算(算術)移(移位)關(關係)與(按位與),異(按位異或)或(按位或)邏(邏輯)條(條件?:)賦(賦值)

單算移關於,異或邏條賦

算術運算

除數運算符 /:

兩個數都是整數就是取整運算,有一個為小數運算結果就是小數

兩個數都是整數,但有一個為負數,等於按其絕對值相除後加上負號

除數不能為0,否則會導致錯誤

0%x=0且0/x=0

求餘運算符 %:

兩個數必須是整數,如果有負數,先按絕對值求餘然後取被除數的符號為結果的符號,可以與取整配合驗證5/-3 = -1;5%-3 = 2;(-1*-3+2=5)

邏輯運算

位運算

注意:

1. /兩側的操作數為整型時,計算結果為整型。

2. %兩側的操作數必須為整型、不能為浮點型。

3. ++和--只能用於一個單獨的變量。

4. 一般形式:表達式一,表達式二,表達式三……整個逗號表達式的值是最後一個表達式的值。求解是自左向右的。

5. 並不是所有的逗號都是逗號表達式,如在定義變量是只是間隔符。

6. 逗號表達式的各個表達式也可是逗號表達式的形式如((表達式1,表達式2),表達式3)。

4. 數據輸出

格式化輸入輸出

(1) printf();

注意:計算表達式中當有多個%d的時候採用從右向左的順序進行輸出,應該是先計算在列印(在VC編譯器中是從右向左)

例如

int i = 10;

printf(「%d %d %d」,++i,++i,++i);

輸出結果是 13 12 11

控制符:

%c單一字符

%d十進位

%o八進位

%x十六進位

%s字符串

%p地址

修飾字符:#用於八進位和十六進位的0,0x

(2) scanf();

%d之間儘量不要加入別的字符

*%d表示輸入讀入但不賦值給變量

遇到以下情況認為輸入結束

a) 遇到空格,或者回車鍵或者Tab鍵

b) 遇到輸入域寬度結束(實數沒有位數限制)

c) 遇到非法輸入

流程控制

1. 順序結構

C語言程序從主函數開始運行,一步一步執行,遇到對應的語句執行對應的過程

2. 選擇結構

1. 簡單分支結構:

if(表達式)

語句1;

運行過程:表達式為真執行語句2

2. 雙分支結構:

if(表達式)

語句1;

else 語句2;

運行過程:表達式為真運行語句1否則執行語句2

3. 垂懸else

if (條件1)

if (條件2)

語句1

else

語句2

規定:上面這類一般else與最接近它的進行匹配

4. switch…case分支結構:常與break一起使用

switch(表達式)

{

case 常量表達式:語句1

……

}

運行過程:首先選擇程序的入口,找到對應的case值進行執行,直到遇到break,或者運行到程序的結束

如果找不到程序的入口那麼就進入default然後直到break結束或者程序結束。不管default的位置在哪裡,都先找對應的case值如果沒有default的話就結束

Switch後面的表達式和常量表達式都是整數或字符型

case對應的值一般可以是整形、字符型,enum封裝的類型不能出現變量或含變量的表達式只能是常量表達式且不能相等

3. 循環結構

1. if…goto語句:

a1:語句1 (a1為語句之前的標號一般是字母)

a2:語句2

……

an:if 條件;goto 某語句;else goto a(n+1);

a(n+1): 語句;

2. while 語句:

while(表達式)

語句;

運行過程:當表達式為真,執行語句

3. for語句:

for(i=1;i

{

語句1;

}

運行過程:i=1; i

4. do…while語句:

do

{

語句1;

}

While(條件);

運行過程:首先執行語句1,如果條件為真,繼續運行語句1;

5. 循環控制語句:

(1) break語句:

跳出循環(注意一定是跳出循環)

(2) continue語句:

繼續循環語句

相關焦點

  • C語言基礎知識學習經典入門
    4 C語言方法調用... 25 C語言宏定義 – 在編譯階段... 26 C語言宏方法定義 – 在編譯階段,無類型... 37 C語言條件判斷... 38 C語言循環... 49 C語言結構體 – 存儲數據的集合 – 結構體的賦值,直接是內存的拷貝... 510 C語言結構體指針 - 同一塊內存... 5
  • C語言基礎知識學習(二)
    函數C語言函數說明1. 一個C程序的基本結構包括預處理部分和函數部分;2.函數是C語言的基本單位;3. C語言程序開始於主函數,結束於主函數;4. C語言中沒有輸入輸出語句但有輸入輸出函數.使用條件a) 可以把問題轉化為新問題,並且新問題解決方法與原問題的解決方案相同;b) 可以提高轉化過程,使問題得到解決;c) 必須有結束條件.2.
  • C語言入門基礎知識大全
    用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。C語言在全世界普及推廣,無論在中國還是世界各國,C語言都是高等學校一門基本的計算機課程,C語言也在計算機領域發揮重要的作用。C語言到底怎麼入門呢?
  • C語言基礎知識學習(四)
    C語言知識點補充關於'\0'與'0'與0與NULL(1)'\0'是字符串的結束標誌其ASCII值為0.在C語言中,NULL和0的值都是一樣的,NULL用於指針,0用於數值。對於字符串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字符串的結尾,不是指針,也不是普通的數值.
  • C語言基礎知識整理
    用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。
  • 新手如何開始C語言基礎學習?
    因此,對於剛剛入門編程的新手來講,從C語言開始你的編程生涯無疑是最好的選擇。那麼,新手如何開始C語言基礎學習呢?下面我們來一起看一看。在學習之前,我們首先要知道為什麼學習C語言。眾所周知,C語言是一門簡單、底層、較早的程式語言,後來的很多語言在語法上都和C語言類似,比如Java、PHP等程式語言都是從C語言衍生出來的,因此掌握C語言將為學習其他程式語言打下更好的基礎。但同時大家也要知道,只會C語言的話,想要找工作還是很困難的。總的來講,C語言的基礎學習不過是冰山一角,要想成為一名優秀的程式設計師,需要學習的東西還有很多。
  • C語言學習推薦書籍
    與 良好的風格高手 - 軟體架構基礎語法是固定的,學習起來比較容易,軟體架構則需要閱讀很多優秀的代碼來培養,而常見的錯誤與良好的風格則可以借鑑前人的經驗。第10章 文本處理第11章 分離用戶界面與內部實現第12章 撰寫設計文檔附錄C語言中接口定義的不同形式《華為技術有限公司c語言編程規範》有一句話說的很好,「規範大於配置」。
  • C語言基礎知識
    pow(x, y)函數C 和 Python 語言的 pow(x, y) 方法都是用於返回 (x 的 y 次方) 的值,C 語言中其原型為:double pow(double x, double y)。值範圍和精度的細節:IO 函數sprintf()函數fopen()函數fwrite()函數預編譯指令-條件編譯c
  • Linux、C/C++學習路線圖、C語言學習路線
    《5天20篇CSDN精選博文帶你掌握系統化學習方法》專欄將挑選有關「系統化學習方法」的20篇優質文章,幫助大家掌握更加科學的學習方法~在這裡,你將收穫:快速掌握系統化學習的理論基礎,探究本質和原理學會將已有知識體系化,形成自己的知識圖譜,離學霸更近一步系統化學習必備工具推薦與使用方法教學,實現高效學習嘗試將系統化學習思維運用於工作
  • 書籍分享|零基礎學習C語言(附電子書)
    在知識廣度上,很少有書能匹及。它能為你系統學習c提供一個良好的平臺。作者:普拉達《The C programming language》拿到這本薄薄的書,很多人開始懷疑,C語言是這麼幾百頁能講清楚的麼。看完這本書,我想答案已經很明了,卻真的讓人感到震憾。什麼是好書?無法刪減的書才是真正的好書。
  • 學習c語言,知道這三個資源就行了
    c語言作為目前最熱門的程式語言之一,一直是學生、程式設計師必須學習的課程之一,但目前許多學校的課程太過老舊,教材和教程也參差不齊,這裡就給大家推薦幾個比較好的學習c語言的資源。第一個推薦的就是《C Primer Plus》,作為一本廣受大家認可的工具書,書中詳細地講解了C語言的基本概念和編程技巧,並且包含了許多習題和例子,可以有效的幫助初學者建立對於C語言的知識體系,是一本對小白比較友好,且內容全面的入門教材。
  • 學習C語言必看的最經典書籍
    來源:互動出版網學習c語言必看的最經典書籍推薦一:《新概念51單片機C語言教程--入門
  • 大一學習C語言,老師只教基礎知識,那麼我該如何進行深入學習?
    大學準備學習C語言編程,但是聽很多學長學姐說學校裡的老師只教C語言前面的基礎知識,學不到特別高深的地步,而且老師講的不深,零基礎學生大部分學不懂,這真的是個大問題!,而且這個時候老師教的就是基礎知識,不可能講一些特別高深的編程技巧,很多在校大學生覺得學校在這幾年守著幾門課程學的足夠熟練,這樣子直接畢業去社會上找工作也會方便許多,學校培養的不完全是編程人才,需要全方位的觸及,學校畢竟不是培訓機構,不可能就朝著一個方向去發展,學校在很多人心中就是象牙塔,都留有美好的印象,很多人畢業很多年了還在懷念學校的時光,遺憾在學校為什麼不好好的去學習,缺憾也是一種美好。
  • 為什麼要把學習C語言作為第一門程式語言?
    對C語言和C ++的計算機編程的知識和理解是當今大學學生最基本的技能之一。建議應該先學習C語言,然後再選擇其他最適合你的語言,更容易學習一些其他高級或腳本語言,例如Java,C#和Python。但如果你不了解C語言,從長遠來看,你的學習技能可能就會受到限制,當然這不是絕對的,我大概意思是希望開發者要學習兩種程式語言以上。
  • 單片機C語言教程-基礎語句
    C語言入門之基礎語句  從程序流程的角度來看,程序可以分為三種基本結構,即順序結構、分支結構、循環結構。c語言提供了多種語句來實現這些程序結構。本文將介紹這些基本語句及其應用,使讀者對c程序有一個初步的認識,為以後的學習打下基矗  c程序的語句  c程序的執行部分是由語句組成的。程序的功能也是由執行語句實現的。
  • 【信盈達】大蝦分享學習C語言的幾點建議!
    這幾個概念就像邏輯線一樣,把整個C語言的體系貫穿起來,給人一種「結構化」的思想體系。1、從宏觀角度來看,結構化是C語言的編程思想基礎,就是說C語言每一個功能模塊就是一個結構,每一個結構實現一個運算或一個算法,這個結構就用大括號表示「{ }」,大括號裡面的就是算法。尤其注意的是大括號的「}」括在那裡,就決定在哪裡結束算法功能。這些是初學者經常犯的錯誤,往往會把算法功能的結束點弄錯。
  • 學員問:C語言入門要掌握哪些基礎知識?
    01C語言程序的結構認識用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。; /*把兩個數之和賦值給整型變量sum*/ }重點說明—1、任何一個c語言程序都必須包括以下格式:main() { }——這是c語言的基本結構,任何一個程序都必須包含這個結構。
  • 大一上c語言學習總結
    作者:李易峰來源:https://www.cnblogs.com/lxzlyf2022/p/10369669.html一: 近期C語言知識點易錯點整理(1)main()----在c語言中稱之為「主函數」,一個c程序有且僅有一個main函數,任何一個c程序總是從main函數開始執行,main函數後面的一對圓括號不能省略。
  • 最全的C語言基礎知識都在這了
    C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。我們用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,加深小夥伴們對C語言的認識。2、main()----在c語言中稱之為「主函數」,一個c程序有且僅有一個main函數,任何一個c程序總是從main函數開始執行,main函數後面的一對圓括號不能省略。3、被大括號{ }括起來的內容稱為main函數的函數體,這部分內容就是計算機要執行的內容。
  • 為什麼很多人選擇放棄學習C語言?
    最近公司招聘兩個崗位一個是web後臺開發,一個嵌入式開發,投送簡歷的比例差不多是十比一,從這個態勢看學習C語言的比例相比前幾年熱度下降了許多,因為大家從招聘力度上看要C語言的公司比例很低,而且相對來說C語言學習起來還難入門,所以越來越多的人選擇學習更加好入門的語言,這也是語言發展的一個趨勢