我无法弄清楚这一点。也许是因为现在是凌晨 2 点。无论如何,我在这里不知所措。
#include <stdio.h>
int main()
{
char array[] = "123456789";
char* ptr = array;
printf("%c\n", *(ptr++));
printf("%c\n", *ptr);
*ptr = array[3];
printf("%c\n", *(ptr++));
printf("%c\n\n", *ptr);
return 0;
}
结果是:
1
2
4
3
我有一个指针,我分配给
array
.然后我打印,我认为是第一个索引 (
'2'
),但得到1
. - 所以,我假设*(ptr++)
实际上是在增加指针之前取消引用。然后我重新分配第
ptr
4 个索引('4'
然后我打印新增加
ptr
的显示('5'
)......我得到了3
?
那是怎么回事,步骤 1&2 和 3&4 是相同的,但我得到不同的结果?