C專家程式設計第一二章筆記

2021-09-28 08:16:03 字數 955 閱讀 1443

c語言有許多特性是為了方便編譯器設計者而建立的,這大大簡化了c語言本身,這讓c語言更容易學習與理解,同時增加了效率。

陣列下標從0開始而不是1;

c語言的資料基本型別直接與底層硬體相對應(沒有複數型別);

auto關鍵字是擺設,它是預設的記憶體分配模式;

表示式中的陣列名看作是指標(但並不等同);

float被自動擴充套件為double;

不允許巢狀函式(函式內部包含另乙個函式的定義);

提供了register關鍵字。

c語言為方便編譯器設計者建立的特性包括但不限於以上內容。

c語言出現早期,有許多人對其增加了許多新特性,從而產生不同的變種,其中較為流行的版本是k&r c,但為了防止其進一步變得鬆散,2023年美國國家標準化組織(ansi)成立了c語言工作小組,開始了c語言的標準化操作,這一版本c成為ansi c。相比而言,任何學習與使用c語言的人應當採用ansi c標準。ansi c增加了一些有趣的術語:

const char **p 能否被char **q賦值?即

void

foo(

const

char

**p)

;int

main

(int argc,

char

**ar**)

這段**會報錯(引數與原型不匹配,argument is incompatible with prototype )

簡單來講,const char **p中,p是乙個指向const char型別的指標的指標,而ar**是乙個指向沒有const修飾的char型別指標的指標,它們都是指標型別,但指向的內容不相容,故無法賦值;但值得一提的是,const char *p是可以被char* q賦值的,因為char 與const char是相容的,而相容是不具備傳遞性的。

前往下一章

c 第一二章

機器語言 組合語言 高階語言 軟體 程式 文件 封裝 有限的對外介面,安全性好 繼承 意義在於軟體復用 改造擴充套件已有類來形成新的類 多型 同樣的訊息作用在不同物件上可能引起不同的行為 同樣是打擊行為,打籃球打桌球的方法和規則都不一樣 三種不同型別的翻譯程式 匯程式設計序 將組合語言程式翻譯成目標...

UNIX網路程式設計第一二章讀書筆記

uinternet 使用tcp ip協議組成的網路 internet 使用各種協議組成的網路 internet是一種internet,反之則說法錯誤。bzero起源於berkeley memset起源於ansi read返回0表示對端關閉了連線,不論是阻塞還是非阻塞都是這樣 read返回負值表示出現...

Python自學第一二章筆記

1 啟動互動式環境 idle python gui 2 操作符 操作符操作 指數 取模 取餘數 整除 商數取整 3 資料型別 int,float,字串strs 連線 複製 4 變數名 字母 數字 下劃線 開頭非數字 5 注釋 6 print input len str 1 布林值 true,fals...