1ytks 发表于 2022-3-31 09:43:44

疑问解答

本帖最后由 1ytks 于 2022-3-31 10:10 编辑

#include <stdio.h>
point (char *p){
        p+=3;
}
main(){
        char b={'a','b','c','d'},*p=b;
        point(p);
        printf("%c\n",*p);
}

题目就是这样结果是a我想问的是 为什么p+=3 那步就感觉没排上用场
我试着输出%dp和 %db 的地址发现他们是一样的 也就是p没有变成p=p+3
所以我的疑问就是p+=3执行了没有

wp231957 发表于 2022-3-31 09:53:50

这代码也无语了

傻眼貓咪 发表于 2022-3-31 11:03:53

本帖最后由 傻眼貓咪 于 2022-3-31 11:05 编辑

#include <stdio.h>

void point(char **p){
        *p = *p + 3;
}

int main(){
        char b = {'a', 'b', 'c', 'd'}, *p = b;
        point(&p);
        printf("%c\n", *p);
}
页: [1]
查看完整版本: 疑问解答