length正常應該是3吧 為什麼加了for迴圈後length就會變成6?
把for迴圈註解掉,printf length又變正常的3,for應該沒有去加length吧? 求解
#include <stdio.h>
#include <string.h>
int main(void){
char buffer[] = {1,2,3};
int length;
length = strlen(buffer);
printf("length=%d\n",length);
for(int i=0;i<=length-1;i++){
printf("buffer[%d]=%d\n",i,buffer[i]);
}
printf("length=%d\n",length);
return 0;
}
換個 compiler 版本看看
同樣的 source code 可以得到不同的結果
這就是 C 語言的迷人之處
1.length=3版本
2.length=6版本
strlen()應該是判斷字串長度
不是陣列長度
改用sizeof()
應該就沒問題了
length = sizeof(buffer);