在寫C C 時突然的疑問(基礎知識)

2021-10-03 19:51:48 字數 1085 閱讀 4396

_finddata_t

c語言裡陣列儲存為什麼是先行後列?

//todo: (未實現)……

//undone:(沒有做完)……

//hack:(修改)……

檢視》任務列表

即可顯示所有帶有todo注釋的**位置

記憶體分為堆區,棧區,靜態區,**區。 全域性變數和靜態變數存放在靜態區,區域性變數存在在棧區,動態申請的變數(即new,malloc函式申請的變數)存放在堆區。

陣列是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。線性表就是資料排成像一條線一樣的結構。每個線性表上的資料最多只有前和後兩個方向。其實除了陣列,鍊錶、佇列、棧等也是線性表結構。

而與它相對立的概念是非線性表,比如二叉樹、堆、圖等。之所以叫非線性,是因為在非線性表中,資料之間並不是簡單的前後關係。

const int *p;是指定義了乙個指標,這個指標指向的是乙個整型常數,這個指標指向的值不能被改變,比如const int *p=&i;那麼就說明i的值不能再被改變了,但是p還可以指向別的值。

int *const p=&i;是指定義了乙個常指標,指向i,這個指標的值不可以被改變,就是說這個指標不可以再指向別的值了,但是i的值是可以改變的。

const int *const p=&i;是指定義了乙個常量指標指向了乙個整形常量,這個指標的值和它指向的值都不可以被改變,所以p的指向和i的值均不能被改變。

參考此文

「a=i++」的作用相當於先將變數i的值儲存到變數a中,再將變數 i 的的值加 1 。「a=++i」相當於將變數 i 的值先加 1 再儲存到變數 a 中。

float *p=new float[100]; //在堆中開闢100個float即100×4=400個位元組的記憶體(3200bit)。

前者分配乙個單元並用33初始化乙個char位元組的堆記憶體,後者分配了乙個字元陣列記憶體區,分配33個char位元組的堆記憶體,相當於前者的33倍空間。

行列出來就是矩陣了,多維陣列與矩陣不一樣,c語言並沒有矩陣這類資料結構,多維陣列維度固定,位址偏移計算方法也是固定的,因此使用多維陣列模擬矩陣就決定了訪問方式的固定

c c 關於數的基礎知識

一種是用字元的八進位制ascii碼,表示為 0dd.這裡,0dd是八進位制值 0可以省略 另一種使用字元的十六進製制ascii碼值,表示為 xhh或xhh 這裡hh是兩位十六進製制值 如 a 101 和 x41 都表示同乙個字元常量。在c語言中,乙個字元常量代表ascii字符集中的乙個字元,在程式中...

學習筆記 C C 的基礎知識

本文章是本人所學知識簡單總結的,不喜輕噴 小聲 1 標頭檔案 語法 include 頭檔名 作用 include 頭檔名 表示把頭檔名中的所有內容拷貝到 這裡 eg std cout函式的標頭檔案 iostream include system函式的標頭檔案 windows.h include 查詢...

有關C C 的一些基礎知識

1.多型類中的虛函式表是compile time,還是run time時建立的?答案 虛函式表是在編譯期就建立了,各個虛函式這時被組織成了乙個虛函式的入口位址的陣列.而物件的隱藏成員 虛函式表指標是在執行期 也就是建構函式被呼叫時進行初始化的,這是實現多型的關鍵.2.乙個父類寫了乙個virtual ...