递增字符数组指针

saz*_*azr 4 c arrays pointers

是否可以像我可以使用char指针那样增加/推进char数组?

例如,我可以针对char指针执行此操作:

while (*cPtr) 
   printf("c=%c\n", *(cPtr++));
Run Code Online (Sandbox Code Playgroud)

但是我无法做到这一点:

// char cArray[] = "abcde";
while (*cArray)
   printf("c=%c\n", *(cArray++));  // Compile error: 19 26  [Error] lvalue required as increment operand
Run Code Online (Sandbox Code Playgroud)

目的是当我不知道数组的长度时能够遍历char数组。我的想法是,除非有更简单的方法,否则我只是想前进直到找到一个我猜为空字符的字符?

char a[] = "abcde";
int index = -1;

while (a[++index]) 
   printf("c=%c\n", a[index]);
Run Code Online (Sandbox Code Playgroud)

hac*_*cks 6

是否可以像我可以使用char指针那样增加/推进char数组?

与指针不同,数组不是左值,并且您不能对其进行修改。那是数组和指针之间的主要区别。