為什麼這篇sizeof指標陣列鄉民發文收入到精華區:因為在sizeof指標陣列這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者nana0130 (小那)看板C_and_CPP標題[問題] 指標陣列算size大小時間Sun ...
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
怎麼算出char *keytab[]的大小
題目原文:
char *keytab[]={"break","case","char","continue","default","for","if","int"};
char **p=keytab;
please use sizeof operator to decide the number of element of keytab
array and define it as NKEYS.
希望得到的正確結果:
36 因為我想說 break case char continue default for if int
這些字元一共有36個
所以我猜答案是36
程式跑出來的錯誤結果:
32
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++ Windows
有問題的code: (請善用置底文標色功能)
#include <iostream>//III
using namespace std;
int main()
{
char *keytab[]={"break","case","char","continue","default","for","if","int"};
char **p=keytab;
for (int i=0; i<8 ;i++)
{
cout<<keytab[i]<<endl;
}
int NKEYS;
NKEYS = sizeof(keytab)/sizeof(char);
cout<<NKEYS;
cout<<sizeof(keytab); //32
system("pause");
return 0;
}
補充說明:
我知道 sizeof(keytab); 是算出8個指標 8X4=32的意思
請問要怎麼用sizeof 去算出 一共使用了36個字元呢????
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.39.115