小春网

 找回密码
 注册账号
楼主: 李秋水2Z73F
收起左侧

[问题讨论] c语言的东西,这句子是干啥的?

[复制链接]
发表于 2009-11-22 11:21:54 | 显示全部楼层
*(buf++);单纯语法理解是指针后移所指的变量,
之前还有buf指针赋值语句吧,能不能把相关代码贴出来
回复

使用道具 举报

发表于 2009-11-22 11:56:23 | 显示全部楼层
记得以前学的是
(*buf)  代表指针buf所指向的那个整型变量.
(buf)  是指针自身.

这样貌似 (*buf++) 就是整型变量加1.

转图:

回复

使用道具 举报

头像被屏蔽
发表于 2009-11-22 12:18:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-11-22 14:45:45 | 显示全部楼层
*buf++
是把buf这个指针指向的地址里的值加1吧
不是把指针地址后移一位
PS大概是这样吧。。。
回复

使用道具 举报

发表于 2009-11-22 16:37:04 | 显示全部楼层
我错了。++确实优先于*.
做了个小例子试了试。
int main(int argc, char* argv[])
{
        int data[3];
        int *buf;
        int i;

        for (i = 0;i < 3; i++)
        {
                data[i] = i;
        }

        buf = data;
        for (i = 0;i < 3; i++)
        {
                printf("%d ", *buf++);
        }
        printf("\n");
        return 0;
}
结果:
0 1 2

++使指针后移一个整型值的位置,*则是取出那个整型值。
回复

使用道具 举报

发表于 2009-11-23 08:29:17 | 显示全部楼层
我错了。++确实优先于*.
做了个小例子试了试。
int main(int argc, char* argv[])
{
        int data[3];
        int *buf;
        int i;

        for (i = 0;i < 3; i++)
        {
                data = i;
        }

        buf = data;
        for (i = 0;i < 3 ...
stonez 发表于 2009-11-22 16:37



哥们也是做c项目的吗?
回复

使用道具 举报

发表于 2009-11-23 22:47:04 | 显示全部楼层
加上 * 就是取指针所指的元素了吧,呵呵
回复

使用道具 举报

发表于 2009-11-23 22:50:50 | 显示全部楼层
27# 小书童
很多年没做过啦。
回复

使用道具 举报

头像被屏蔽
 楼主| 发表于 2009-11-24 01:49:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-11-25 10:04:21 | 显示全部楼层
buf++是将指针的指向往后移,指向下一个;*buf++是将指针指向的现有值+1,而不改变指针所指的位置吧~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表