看板 C_and_CPP 關於我們 聯絡資訊
#include<stdio.h> #include<string.h> void ch(char const s3[]) { printf("%s\n",s3); unsigned y=sizeof(s3)/sizeof(s3[0]); printf("%u\n",y); } int main() { char s1[]="abcde"; unsigned x=sizeof(s1)/sizeof(s1[0]); printf("%u\n",x); ch(s1); system("pause"); return 0; } 應該y,x的值會是一樣才對... 但跑出來X是6,y卻變成4...百思不解~請高手指教一下~感恩 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.184.84
su31o4gj83:s3是個pointer, 而pointer都是4 bytes 07/08 18:49
su31o4gj83:至於s1算不算是個pointer, 這個我也想知道.... 07/08 19:05
world9918:算字串長度請用strlen(s3); 07/08 19:11
ilway25:y也可能是8喔 07/08 19:28
sbrhsieh:請見舊文: #19xs6Tzb 07/08 20:17