在做這道題時:
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
#include
using
namespace
std;
void
fun(
int*p)
intmain()
結果輸出:
陣列名40
指標4在函式中4
由此可見,陣列名並不是完全等同於指標。雖然它們都可以通過指標方式訪問陣列。在這個部落格看到他們的區別:
但是陣列在作為函式引數傳遞過程中,會退化成指標。這也是為什麼指標作為引數傳遞時,經常要乙個長度。
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 陣列名 及strlen(陣列名)
程式的輸出結果為 1 100 2 4 3 1 相當於a 100 這個數所佔的位元組大小,也就是乙個char位元組占得大小 當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。不論陣列a的容量是多少,sizeof a 始終等於sizeof char func char p int main ...
sizeof 陣列名 and sizeof 指標
看一下 include using namespace std void hehe int p cout 由此可見,陣列名並不是完全等同於指標。雖然它們都可以通過指標方式訪問陣列。但是陣列在作為函式引數傳遞過程中,會退化成指標。這也是為什麼指標作為引數傳遞時,經常要乙個長度。最後,c 中new陣列的...