三天學會C語言編程 | 中篇

2020-12-12 itworld123

本文是《三天學會C語言編程》的第二篇文章,承接上一篇《三天學會C語言編程 | 上篇》。本文重點介紹C語言的數據類型、表達式、變量和函數等內容。

數據類型

C語言中有多種數據類型,這些數據的類型與我們日常生活中的數據的類型有些類似。比如整型數和浮點型數(小數),還有一些我們平時接觸不到的數據類型,如字符串類型(上文中的hello world!就是一個字符串類型的數據)。如下表是C語言支持的數據類型(部分),這裡先不用過多理解,只需要知道有這些類型就行,後面會詳細介紹。通過這個表可以看出不同類型的數據佔用的內存空間大小是不同的。

圖1 C語言數據類型列表

變量

變量其實是內存的一個區域,用於存儲具體的數據,需要說明的是變量是有名稱的。變量的名稱就好像郵箱的編號一樣,這樣我們在編程的時候就可以通過這個名字方便的訪問(讀或者寫)變量。

在C語言中變量的名稱可以是英文字符、下劃線和數字,但只能以英文字符和下劃線開頭,不能以數字開頭。另外,C語言中變量名稱是區分大小寫的,也就是var_name和var_Name是兩個不同的變量。

我們知道在C語言中數據是有不同的類型的,同樣變量也有不同的類型。不同類型的變量用於存儲不同類型的數據,而且不同類型變量佔用的空間大小是不同的。那麼如何定義一個變量呢?很簡單,其基本格式就是類型+變量名稱,如下定義了一個整形的變量:

int var_name;

其它類型的變量與此類似,只是變量的類型不同。至於名稱則遵循上文所描述的規範。

表達式

我們知道程序最主要的功能就是進行計算的,因此在程序中會有一些表達式進行計算。表達的形式與日常數學中的表達式基本一致,運算的優先級也類似。如下是一個簡單的表達式:

3 + 5 * 6

這個表達式進行簡單的數據計算,但該表達式在實際編程時並不沒有太大意義,因為計算出的值將被直接丟棄。通常我們需要將表達式計算的值放到一個變量這,這樣我們後面才能使用該表達式計算的結果。下面是一個具體的示例:

#include <stdio.h>int main(void){int a; //聲明整型變量 long b; // 聲明長整型變量 short c; // 聲明短整型變量 char d; // 聲明字符類型的變量 float e = 1.2; //聲明浮點型(小數)變量,在聲明的時候可以直接初始化 int f = 0; unsigined int = 3; // 聲明無符號整型變量,無符號整形只能是非負整數 b = 10; //給變量賦值,賦值就是改變變量的內容,讓其等於某個值 c = 11; // 注意賦值的方向,變量在等號左邊(又稱「左值」),數據在等號右面 a = a + 10; // 進行基本的加法運算 c = a + b; /* 可以進行不同類型的變量之間的運算,但可能會丟失數據。因為每種類型變量存儲的數值大小是有限的,超過就會溢出。本例中變量c是短整型,範圍是-32,768 到 32,767。而變量b是長整形,範圍是從-2,147,483,648 到 2,147,483,647。因此,如果計算結果超過了c的範圍,將會出現溢出,因此在計算是需要注意。*/ e = a + b * c; // 這裡的*是星號,也就是鍵盤8上面的字符,代表乘法 a = (a + e) * c; //可以使用括弧提升運算的優先級,本例中 a = a /c ; //除法運算 a = a % c; //取模運算 a --; //自減運算,也就是自己減1 a ++; //自加運算 /*除了進行基本的算術運算外,還可以進行位運算。所謂位運算就是逐位運算。*/ a = a & b; //按位「與」運算 a = a | b; //或 a = a ^ b; //異或 a = ~a; //非 /*關係運算,也就是判斷兩個或者多個變量的關係。*/ a == b; //判斷兩者是否相等,相等返回真,否則返回假 a >= b; a > b; a <=b; a != b; //判斷兩者是否相等,相等返回假,否則返回真 a && b; //注意是2個&,兩者都為真是結果為真。可以多餘2個進行運算 a || b; }

函數

我們在最一開始的時候已經使用了函數,但還沒有對函數進行任何介紹。下面本文將介紹一下什麼是函數,為什麼要有函數以及函數怎麼使用。

函數是對實現某個功能的代碼的封裝。有了函數之後,具體的功能我們調用該函數就可以完成,而不同將代碼黏貼過來,增加了便利性。

#include <stdio.h>/*下面是函數的定義*/int add(int a, int b) /*這一行成為函數頭,其中int是函數的返回值類型,add是函數名稱,int a和int b是函數的參數(形參)。這裡返回值和參數可以是任何類型。*/{ /*函數頭後面要緊跟著{,可以與函數頭在同一行,或者另起一行,這個代表函數體的開始*/int c = 0; c = a + b; //這裡是函數的具體實現,根其它地方沒有任何差異 return c; //函數的返回值,類型要與在函數頭中定義的一直,否則有截斷的風險 }/*函數體的結束*/ int main(void) { int a = 0; a = add(1, 2); /*函數的調用,這裡相當於使用add函數的功能,進行加法運算。*/ printf("result: %d\n", a);}

函數可以與入口函數在相同的文件中,也可以在一個單獨的文件中。函數的定義通常在.c文件中,而在頭文件(.h文件)中添加聲明。這樣我們只需要包含頭文件就可以使用該函數了。

好了今天先到這,到這裡基本上可以寫簡單的C語言程序了,並封裝成功能函數。明天寫最後一篇主要介紹流程控制、複雜的數據類型和系統庫等內容。

相關焦點

  • c語言編程軟體哪個好?c語言編程軟體下載地址
    c語言編程軟體哪個好?c語言編程軟體下載地址 2019年1月14日 HuangJiang來源:網際網路 繁體
  • 《C語言入門指南》中篇
    此為中篇,涵蓋知識點為:函數、預處理命令、數組、排序和查找,中篇全文共計12000餘字,適用初學者入門C語言,非初學者也可以通過本文複習C語言相關知識點,強化記憶!十三發布這篇筆記也是為了複習C語言!本文已收錄到GitHub[1]開源倉庫【Ye13[2]】,點擊閱讀原文即可跳轉,進行star!
  • 為什麼要學習「 C」程式語言?
    「 C」編程是另一種程式語言的基本基礎,像java、php,C++等熱門程式語言都是「 C」編程最為底層開發,所以我們通常稱「 C」編程編程「母語」。「 C」編程是一種簡單的語言,可以更快地執行。「 C」編程還是一種極其緊湊的語言,這意味著以「 C」編程方式尋址的程序可以在不同的機器上運行。C程式語言的優勢作為中級語言,C連接了低級和高級語言的功能。C語言可用於底層編程。例如用於內核和驅動程序的腳本,它還有助於使用高級程式語言,例如用於軟體應用程式的腳本等。
  • 現代程式語言起點,C語言之環境搭建
    C 語言是一種廣泛使用的計算機語言,它與 Java 程式語言一樣普及,二者在現代軟體程式設計師之間都得到廣泛使用。C 語言被廣泛使用,比如:Linux 作業系統和 RDBMS(關係資料庫管理系統) MySQL 都是使用 C 語言編寫的。
  • 自學編程第1節:程式語言有哪些,什麼關係?彙編C/C++,JAVA簡介
    首先,謝謝大家點擊閱讀獵奇哥的編程系列教程,後期慢慢補充,詳細介紹C語言,C++語言編程的方方面面,儘量幫助大家能夠儘量簡單的學會C++編程核心入門知識。總章節數待定,視內容的更新情況。說起編程,最早的是彙編語言,這種語言大家通常叫做低級語言,做一個程序,需要非常多的指令和代碼,完成的卻是一個非常簡單的功能,程式設計師的工作量非常大,當然,那個時期,電腦的功能也沒有現在的這麼強大,彙編對於當時來說,也是夠用。
  • C語言簡單編程速成
    在創建了一個經久不衰的作業系統(至今仍在使用)之後,他需要一種好的方法來對這些 Unix 計算機編程,以便它們可用執行新的任務。在現在看來,這很奇怪,但在當時,程式語言相對較少,Fortran、Lisp、Algol 以及 B 語言都很流行,但是,對于貝爾實驗室的研究員們想要做的事情來說,它們還是遠遠不夠的。丹尼斯·裡奇表現出一種後來被稱為程式設計師的主要特徵的特質:創造了他自己的解決方案。
  • 嵌入式系統高級C語言編程
    內容簡介  《嵌入式系統高級C語言編程》將主要介紹針對嵌入式系統的基於C語言的軟體項目開發的流程,較為複雜的c語言編程知識和技巧,編程風格和調試習慣
  • C語言編程工具選擇
    一、編程工具計算機處理的數據、接受的指令是二進位數據,用C語言編寫的程序需要轉變成計算機能識別的二進位,才能讓計算機工作,這個轉換過程就是使用編譯器對源程序進行編譯,雖然可以使用命令行的方式編譯源程序,但使用編程工具不僅可以編譯源程序,還可以編寫、調試等,可以簡化編程工作。
  • C語言編程習慣心得
    從編程菜鳥一路走來,慢慢對編程習慣有了一個新的認識。因為曾經我寫的代碼的可讀性令自己也感到哭啼皆非,搞得自己暈頭轉向。今天特意來分享一下自己的一些關於編程習慣的心得。很多人以為代碼一敲完,能得到預期的結果,就萬事ok,其實不然。後面的程序調試、維護和升級是一個項目中很重要的一部分,這就要求我們必須規範編程習慣。
  • R語言編程入門進階(學會使用函數包)
    R語言編程入門(爬蟲函數包的使用)寫在前面的上期推文介紹了R語言編程入門,從了解R語言的5種數據結構和兩種控制結構開始,再到借上上篇推文的Readscount數據綜合利用R語言編程證明Readscount屬於負二項分布。現在再回顧一下R語言的五個數據結構:向量、矩陣、列表、數據框、因子,以及兩種控制結構,循環和判斷。
  • 單片機C語言編程心得
    寫這個8*8按鍵程序的過程中,不管是在自己寫還是參考別人程序的過程中,發現自己對C語言有些基本知識點和編程規範有很多不懂的地方,有些是自己以前的編程習慣不好,有些就是基礎知識不紮實的表現,所以總結出來。
  • 如何學會所有的程式語言?
    新手在開始學習編程時通常會問這個問題:「我要從哪一門程式語言開始學起?」在學會了幾門程式語言之後,很多開發者會問這個問題:「哪一門程式語言是最好的?」話是沒錯,不過更重要的你要學會「如何學習新的程式語言」,而不只是學會某一門具體的語言。要掌握「學會所有程式語言」的能力,你不需要是一個天才,你要做的是掌握程式語言的核心知識,並知道所以,代碼實際上就是你傳達給人類和計算機的「消息」。這也是在設計和實現程式語言時需要考慮的權衡點。因為:一些最佳實踐。
  • C語言編程核心要點
    原文標題C語言編程核心要點,男人看了沉默,女人看了本文轉載自【微信公眾號:碼磚雜役,ID:whatis9527want】引言筆者有十餘年的C++開發經驗,相比而言,我的C經驗只有一兩年,C比較簡單,簡單到《The C Programming Language》(C程序設計語言)只有區區的200多頁,相比上千頁的C++大部頭,不得不說真的很人性化了
  • 如何快速實現C語言上手編程,福利在這裡,C語言編程的入門教程
    C語言編程如何快速實現在我們初次學習C語言的時候,總想著快速的實現編譯過程。那麼C語言編程究竟是如何實現的呢,當然是要通過自己喜歡的編譯器來編譯完成,那麼今天就為大家介紹C語言編程是如何快速的實現。然後在選擇C++語言,C++語言是C語言的升級版,然後再次點擊「Next」,進入下一步。5. 選擇創建的名稱,可以創建一個醒目的名稱。然後便是文件放置位置,然後點擊「Next」。6. 點擊最左側欄「main.cpp」會出現編程書寫界面,然後便可以實現我們的代碼編程。7.
  • C語言編程工具的選擇
    我們計算機專業沒有C語言這門課。其他工科專業會學C語言這門課。據我所知,其他的工科專業需要過C語言2級考試。計算機專業不用考2級、3級...這些考試。我們計算機專業學的第一門程式語言是C++。那我們當時老師上課是用什麼編程工具的?是VC++ 6.0。VC++6.0界面簡潔(簡陋),沒有多餘花哨的功能,淡白色的界面。
  • 為什麼要把學習C語言作為第一門程式語言?
    編程是向計算機發出指令以執行特定任務或執行指令的行為,目前專業行業和學術界使用數百種程式語言。一個人需要熟悉並且能夠使用至少幾種程式語言進行編程才能作為目前專業開發者的成功。學習編程的最好理由在於它對所有人開放,你不需要大學學位即可通過自學成為專業程式設計師。
  • 五步學會任何程式語言 | Linux 中國
    有些人喜歡學習新的程式語言,也有一些人覺得學習一種都是可望不可及的事情。在本文中,我將向你展示如何像程式設計師一樣思考,這樣你就可以自信地學習任何一門你想要學習的程式語言。事實上,一旦你學會了如何編程,你使用的程式語言就不再是一個障礙,而更像是一種形式。實際上,這就是教育家們倡導 讓孩子儘早學習編程 的眾多原因之一。
  • 自學編程:C語言的概述
    1972年美國貝爾實驗室的Dennis M.Ritchie為克服B語言的諸多不足,在B語言的基礎上重新設計了一種語言,取其第二字母C,故稱為C語言。驅動一般是用C語言和彙編語言寫的,C++ 在這方面稍弱。 資料庫:SQL Server、Oracle、MySQL、DB2②應用軟體開發 辦公軟體:WPS。 圖形圖像多媒體:Photoshop、Mediaplayer。 嵌入式軟體開發:嵌入式軟體開發說得簡單點就是晶片編程,比如我們以後學習在單片機和 ARM 上進行的開發都屬於嵌入式軟體開發。
  • Linux系統下的c語言編程規範整理
    每一種程式語言都有它獨特的編程規範,畢竟無規矩不成方圓,如果編碼不規範,一方面程序顯得晦澀難懂,讓其他讀者維護起來特別困難;另一方面自己再次查看的時候也會有一定困難。今天小編就來聊聊Linux環境下c語言編程的規範。
  • 編程是什麼——高級程式語言FORTRAN的問世
    8位有效值,即在內存的記錄是3.0000000第四步,將變量c顯示在屏幕上,然後我們得知,1+2是等於3的。為了更高效地使用計算機,人們設計出了高級程式語言,經過各軟體工程師和專家的不懈努力,1954年,第一個完全意義的高級程式語言FORTRAN問世了,他完全脫離了特定機器的局限性,是第一個通用性的程式語言。用高級程式語言編寫的程序需要經過翻譯,翻譯成機器所能識別的二進位數才能由計算機去執行。