sizeof 陣列名 and sizeof 指標

2021-07-10 10:01:52 字數 422 閱讀 1235

看一下**:

#include using namespace std;

void hehe(int *p)

{ cout<

由此可見,陣列名並不是完全等同於指標。雖然它們都可以通過指標方式訪問陣列。

但是陣列在作為函式引數傳遞過程中,會退化成指標。這也是為什麼指標作為引數傳遞時,經常要乙個長度。

最後,c++中new陣列的用法:

int a[10];

int *b=new int[10];

int a這種方式,記憶體是存放在棧上,int* a=new這種方式,記憶體是存放在堆上。棧的實際記憶體是連續記憶體,因此可分配空間較小,堆可以是非連續記憶體,因此可以分配較大記憶體。因此,如果需要分配較大記憶體,需要分配在堆上。

sizeof 陣列名 及strlen(陣列名)

程式的輸出結果為 1 100 2 4 3 1 相當於a 100 這個數所佔的位元組大小,也就是乙個char位元組占得大小 當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。不論陣列a的容量是多少,sizeof a 始終等於sizeof char func char p int main ...

sizeof 陣列名 和sizeof 指標

在做這道題時 32位環境下,int p new int 10 請問sizeof p 的值為 a 4 b 10 c 40 d 8 我以為正確答案為c,int型別為32位,佔四個位元組,10個自然就是40了,結果正確答案為a,只是指標p佔的空間。因此寫段 測試一下 cpp view plain copy...

sizeof 陣列名 和sizeof 指標

在做這道題時 32位環境下,int p new int 10 請問sizeof p 的值為 a 4 b 10 c 40 d 8 我以為正確答案為c,int型別為32位,佔四個位元組,10個自然就是40了,結果正確答案為a,只是指標p佔的空間。因此寫段 測試一下 cpp view plain copy...