這麼多年過去了,回頭再來學習一下C語言,發現不少不同的感受算法
#include <stdio.h> int main(int argc, const char * argv[]) { printf("Hello, World!\n"); return 0; }
十多年前學的第一個編程語言,從新認識一下編程
#include 預處理指令,不是c語句,由於末尾沒有分號。C語言提供了不少的預處理功能,預處理指令都以#開始,常常遇到的#define(宏定義)、#include(文件包含)、#ifdef(條件編譯)、#error(中止編譯)等。數組
答案:C語言要被機器認識執行,須要將C語言進行編譯生成可執行的文件,這樣機器纔會認識這是什麼東西。整個過程的順序是:預處理-編譯-彙編-連接-生成可執行文件。能夠看到預處理是最早得步驟,仍是比較重要的。
好比:#include<stdio.h>就是stdio.h的文件複製到這個文件中,這樣編譯時處理的就不是#include<stdio.h>這個操做了,而是直接去執行stdio.h裏的內容了
#define 進行宏替換,將使用了定義的宏的值進行替換
#ifdef 根據不一樣條件進行編譯,條件編譯的指令有好幾個
#error 強制中止編譯,調試時給出錯誤信息
main:是一個函數,每個c程序有且只有一個main函數,main是整個c程序的入口,由系統調用的網絡
int argc, char *argv[] ::main函數的兩個參數,argc是整形,argv是指針數組,agrc命令行參數個數,argv保存每一個命令行參數的字符串首地址,這兩個參數由系統傳遞數據結構
{} main函數的實現過程數據結構和算法
printf:標準庫提供的格式化輸出函數,他的做用是將Hello, World!字符串輸出到終端上編程語言
return 0:函數返回,他的做用是將0返回給系統,通常返回的是一個狀態分佈式
c語言的組成:函數
C語言是由數據結構和算法構成的,數據結構是指數據的組成形式,算法是對數據的操做方法,因此編程是一個創造藝術的過程,必須將算法和數據進行近乎完美的組合才能創造出各類各樣的生活。學習
數據結構有不少種,數據結構可分爲:
1:數據之間沒有直接的聯繫(變量 int a, int b)
2:數據之間呈現一對一的聯繫(數組,鏈表,棧,隊列)
3:數據之間呈現一對多的聯繫(樹)
4:數據之間呈現多對多的聯繫(圖)
C語言的精髓就是數據結構與算法。最近在寫分佈式網絡爬蟲,發現算法是很是很是重要的,當處理的數據大到不可想象時,才能懂算法的重要。而c語言在處理數據時相對其餘高級語言要快不少。因此想要作一個飛俠,那就好好將C語言理解。