• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • C語言基礎學習筆記--Day01

    標簽: 編程語言  c++

    C語言概述

    本文章為學習筆記,如有不足還請多多包涵。同時歡迎各位一起學習交流。

    1.1 什么是計算機語言

    人和人之間的交流需要通過語言。人和計算機交流信息也要解決語言問題。需要創造一種計算機和人都能夠識別的語言,這就是計算機語言。計算機語言經歷了以下幾個發展階段。
    機器語言 計算機工作基于二進制,從根本上說,計算機只能識別和接受由0和1組成的指令。在計算機發展初期,一般計算機的指令長度為16,即以16個二進制數(0或1)組成一條指令,16個0和1可以組成各種排列組合。

    例如:1011011000000000
    

    這種計算機能直接識別和接受的二進制代碼稱為機器指令。機器指令的集合就是該計算機的機器語言。在語言的規則中規定各種指令的表示形式以及他的作用。機器語言與人民習慣用的語言差別太大,難學,難寫,難記,難檢查,難修改,難以推廣使用,因此初期只有極少數的計算機專業人員會編寫計算機程序。

    符號語言 為了克服機器語言的上述缺點,人們造出了符號語言,他們用一些英文字母和數字表示一個指令。例如用ADD代表“加”,SUB代表“減”,LD代表“傳送”等。

    ADD A,B      (執行A+B=A,將寄存器A中的數與寄存器B中的數相加,放到寄存器A中)
    

    計算機并不能直接識別和執行符號語言的指令,需要用稱為匯編程序的軟件吧符號語言的指令轉換為機器指令。一般,一條符號語言的指令對應轉換為一條機器指令。轉換過程為“代真”或“匯編”,因此,符號語言又稱為符號匯編語言或匯編語言。
    匯編語言比機器語言簡單好記,但仍難以普及,只在專業人員中使用。
    不同型號的計算機的機器語言和匯編語言是互不通用的。機器語言和匯編語言是完全依賴于具體機器特性的,是面向機器的語言。由于它“貼近”計算機,故稱為計算機低級語言

    高級語言 為了克服低級語言的缺點,20世紀50年代創造出了第一個計算機高級語言——FORTARN語言。它很接近于人們習慣使用的自然語言和數學語言,

    //例如在FORTARN語言中,計算輸出3.5*6sin(π/3)
    PRINT *,3.5*6*SIN(3.1415926/3

    這種語言功能很強,且不依賴于具體機器,用它寫出的程序對任何型號的計算機都適用,它與具體機器距離較“遠”,故稱為計算機高級語言。
    計算機也不能直接識別高級語言程序,也要進行“翻譯”。用一種稱為編譯器的軟件把用高級語言編寫的程序(源程序)轉換為機器指令的程序(目標程序),然后讓計算機執行機器指令程序,最后得到結果。高級語言的一個語句往往對應多條機器指令。
    高級語言經歷了不同的發展階段:
    (1)非結構化的語言
    (2)結構化語言
    (3)面向對象語言

    1.2 C語言的發展及其特點

    1972年,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出來C語言。1983年,美國國家標準協會(ANSI),根據C語言問世以來各種版本對C語言發展和擴充,制定了第一個C語言標準草案('83 ANSI)。1989年,ANSI公布了一個完整的C語言標準——ANSI X3. 159-1989(常稱為ANSI C 或 C89)。1990年,國際化標準組織ISO接受C89作為國際標準ISO/IEC 9899:1990,他和ANSI的C89是相同的。1999年,ISO又對C語言標準進行修訂,在基本保留C語言特征的基礎上,針對應用的需要,增加了一些功能,并在2001年和2004年先后進行了兩次技術修正,它被稱為C99,C99是C89的擴充。

    C語言的特點
    (1)語言簡潔、緊湊,使用方便靈活
    (2)運算符豐富
    (3)數據類型豐富
    (4)具有結構化的控制語句
    (5)語法限制不太嚴格,程序設計自由度大
    (6)C語言允許直接訪問物理地址,能進行位操作,能實現匯編語言的大部分功能,可以直接對硬件進行操作
    (7)用C語言編寫的程序可移植性好
    (8)生成目標代碼質量高,程序執行率高

    1.3 簡單的C語言程序

    屏幕上打印 Hello Woeld

    #include<stdio.h>
    int main(){   
        printf("Hello World");
        return 0;
    }
    

    代碼解析:

    //導入標準輸入輸出庫
    #include<stdio.h>    //包含頭文件 std 標準庫 io input output 輸入輸出庫 <>系統庫 “”自定義頭文件
    //主函數  一個程序有且只能有一個主函數
    //函數的返回值類型 int整型
    //函數的參數類型 void空類型
    //{}程序體代碼體  函數體
    int main(void){   
        //打印函數“”引起來的稱為字符串常量
        printf("Hello World");
        //函數的返回值 如果在主函數中遇到return代表程序結束
        return 0;
    }
    

    C語言程序結構
    (1)一個程序有一個或多個源程序文件組成,在一個源程序文件中可以包括3個部分:
    ① 預處理指令
    ② 全局聲明
    ③ 函數定義
    (2)函數是C程序的主要組成部分,一個C語言程序是由一個或多個函數組成的,其中必須包含一個main函數(且只能有一個main函數)
    (3)一個程序包括兩個部分
    ①函數首部。即函數的第一行,包括函數名、函數類型、函數參數名、參數類型
    在這里插入圖片描述
    ②函數體。即函數首部下面花括號內的部分。函數體一般包括以下兩部分。
    聲明部分。聲明部分包括:定義在本函數中所用到的變量;對本函數所調用函數進行聲明。
    執行部分。由若干個語句組成,指定在函數中所進行的操作。
    (4)程序總是從main函數開始執行的
    (5)程序中要求計算機完成的操作是由函數中的C語句完成的
    (6)在每個數據聲明和語句的最后必須有一個分號
    (7)C語言本身不提供輸入輸出語句
    (8)程序應當包含注釋

    1.4 C語言編譯過程

    1、預處理

    • 宏定義展開
    • 頭文件展開
    • 刪除注釋
    • 條件編譯

    2、編譯

    • 檢查語法
    • 轉化成匯編語言

    3、匯編

    • 將匯編語言轉化成機器語言

    4、鏈接

    • 將庫文件鏈接變成可執行文件
      在這里插入圖片描述

    1.5 集成開發環境IDE

    集成開發環境(IDE,Integrated Development Environment )是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開發環境。

    Qt Creator
    Qt Creator是跨平臺的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收購后推出的一款新的輕量級集成開發環境(IDE)。此 IDE 能夠跨平臺運行,支持的系統包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根據官方描述,Qt Creator 的設計目標是使開發人員能夠利用 Qt 這個應用程序框架更加快速及輕易的完成開發任務

    Microsoft Visual Studio
    Microsoft Visual Studio(簡稱VS)是美國微軟公司的開發工具包系列產品。VS是一個基本完整的開發工具集,它包括了整個軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發環境(IDE)等等,所寫的目標代碼適用于微軟支持的所有平臺。Visual Studio是目前最流行的Windows平臺應用程序的集成開發環境。
    Visual Studio4396錯誤
    由于微軟在VS中不建議再使用C的傳統庫函數scanf,strcpy,sprintf等,所以直接使用這些庫函數會提示C4996錯誤:
    在這里插入圖片描述
    VS建議采用帶_s的函數,如scanf_s、strcpy_s,但這些并不是標準C函數。要想繼續使用此函數,需要在源文件中添加以下指令就可以避免這個錯誤提示:

    #define _CRT_SECURE_NO_WARNINGS     //這個宏定義最好要放到.c文件的第一行
    #pragma warning(disable:4996)	//或者使用這個
    
    
    版權聲明:本文為qq_39528210原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_39528210/article/details/104837434

    智能推薦

    Spring學習筆記(day01)

    文章目錄 spring_day01 1 spring介紹 1.1 三層架構中spring位置 1.2 spring一站式框架 2 spring搭建 2.1 導包 2.2 創建一個對象 2.3 書寫配置注冊對象到容器 3 spring概念 3.1思想 3.1.1 ioc 3.1.2 di注入 3.2 applicationContext&BeanFactory 3.2.1 BeanFacto...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    猜你喜歡

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

    精品国产乱码久久久久久蜜桃不卡