關於C 一些最最最基本的概念的理解

2021-09-26 04:14:11 字數 1110 閱讀 1411

物件(c++術語):就是一塊記憶體空間,兩個維度來描述一塊記憶體空間:位址+內容。變數則是乙個有名字的物件(c++術語)。

型別:規定了如何解釋該型別物件(c++術語)的那一塊記憶體空間,以及在這塊記憶體空間上能夠實施的操作。

表示式:由運算子(函式)與運算物件[1]構成,共同表達了乙個計算過程。其中:運算子表達如何計算,運算物件表達計算什麼。[2]

語句(**塊):規定了如何將簡單表示式組合成複雜的表示式,從而來表達複雜的計算過程。也從兩個維度來描述語句:語法+語義。其中:語法說明了如何組織?語義說明了組織起來的複雜表示式是什麼含義,即表達了什麼計算過程。

函式(運算子):僅僅是為了**編寫的簡化提出的乙個命了名的**塊。其規定了乙個 計算步驟。也就是說其將乙個計算過程中需要的兩個維度:怎麼計算,計算什麼。其中的怎麼計算維度抽象出來了,所以說,只要給予其合適的計算物件,就可以表達乙個完整的計算過程。

計算:記憶體的讀寫。記憶體狀態的變化。按照表示式規定的計算過程,結合相應的計算物件,在一些特定的記憶體區域上進行讀寫的過程。[3] [4]

[1] 此處的運算物件不一定單指c++中的術語,物件。也可能是乙個型別名,譬如sizeof()運算子。還可能是另乙個表示式。更進一步說,變數也是表示式,型別也是表示式,當其做為運算子的運算物件的時候。所以可以這麼說,[1]中的運算物件特指表示式,而不是c++中的術語物件。

[2] 那麼表示式的定義如下:

給定一些簡單的元表示式(譬如:內建型別,變數,字面值常量等)。

通過運算子可以將簡單的表示式組織成複雜的表示式

按照語句,函式(運算子)的規定也可以將簡單的表示式組織成複雜的表示式。

[3] 綜上,表示式都是為了表達乙個計算的過程(計算的方式+計算的物件(原義))。按照表示式規定的計算方式,結合計算的物件(原義)進行一些特定記憶體的讀寫,就是計算的過程。

[4] 此處的特定記憶體區域不一定是計算物件對應的記憶體。因為計算物件(原義)一定是表示式,但不一定是物件(c++術語)。另外如果計算物件(原義)是指標的話,其操作的記憶體空間可能不是指標這個物件(c++術語)的值,而是其指向的記憶體空間。

最最基本的socket程式設計基礎 c 二

這一篇我來寫一下socket程式設計裡面比較基本的函式 socket socket int af,int type,int protocl 第二個引數指定socket型別 socke stream產生流式套接字,sock dgram產生資料報套接字 函式呼叫失敗返回invalid socket 我有...

最最基本的SQL手動url注入方法

sql注入,說白了本質就是乙個應用sql語句構造程式的乙個過程,通過在web中輸入 使後台認為其是資料便注入原始碼之中,從而達到某些意想不到的結果 手工查詢注入點 1.1 正常訪問 2.1 and 1 1 是不是跟正常結果一樣 3.1 and 1 2 是不是沒有結果 4.1 order by 1,2...

關於向量空間的基本性質,與子空間的最最基本性質

空間定義 向量空間是由向量組成的集合,有兩個基本的運算,向量加法,以及標量乘法,有以下公理 1 u v v u 2 u v m u v m u m v 均為向量 3 c v m cv cm 4 c d m cm dm 5 c d v c d v 其中,c d 為標量,v m 為向量 子空間的定義 向...