#include <stdio.h>
#include <stdlib.h>
int countArrayChars(char *strArray[]){
int i=0;
while (strArray[i] != '\0'){
i++;
}
printf("%d\n", i);
return i;
}
int main(int argc, const char * argv[]) {
char *dog[] = {"dog"};
countArrayChars(dog);
由於某種原因,它會打印「5」。當在c中排列數組時出現錯誤答案
不應該打印3嗎? 我甚至試圖在「g」後加\ 0。
- >'而(strArray [0] [i]!='\ 0'){' – BLUEPIXY
or'char dog [] = {「dog」};''count'ArrayChars(char strArray []){' – BLUEPIXY
就像BLUEPIXY所說的那樣,strArray是一個字符串數組,因此strArray [0]是指向數組中第一個字符串的指針,strArray [1]不存在。你迭代的是指向字符串的指針地址中的字節。 –