相关疑难解决方法(0)


s ++和*s ++之间有什么区别吗?

我是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)

在上面的代码将递增数组的地址a1 char在调用函数test.很好,现在我知道*它用于检索指针指向的对象值.

但奇怪的是,当我改变t++

*t++;
Run Code Online (Sandbox Code Playgroud)

我得到的输出和以前一样.我字面意思是这个,上面的语句 *t++;应该改变内容只知道,根据*运算符的定义.

但这又改变了地址t.怎么会?我在哪里弄错了这个概念?

提前致谢

c pointers

0
推荐指数
1
解决办法
263
查看次数