我是C的初学者,让我说我有这样的代码:
#include <stdio.h>
void test(char *t)
{
t++;
*t = 'e';
}
void main()
{
char a[] = "anto";
printf("%c\n",a[1]);
test(a);
printf("%c\n",a[1]);
}
Run Code Online (Sandbox Code Playgroud)
这是示例代码,我正在弄清楚指针是如何工作的.根据我的说法:
t++;
Run Code Online (Sandbox Code Playgroud)
在上面的代码将递增数组的地址a由1 char在调用函数test.很好,现在我知道*它用于检索指针指向的对象值.
但奇怪的是,当我改变t++为
*t++;
Run Code Online (Sandbox Code Playgroud)
我得到的输出和以前一样.我字面意思是这个,上面的语句
*t++;应该改变内容只知道,根据*运算符的定义.
但这又改变了地址t.怎么会?我在哪里弄错了这个概念?
提前致谢