admin 管理员组文章数量: 887053
*p++,*(p++),*++p,(*p)++区别?
*p++:等同于:*p; p += 1;
解析:由于和++的运算优先级一样,且是右>结合。故p++相当于*(p++),p先与++结合,>然后p++整体再与结合。前面陈述是一种最
常见的错误,很多初学者也是这么理解的。
但是,因为++后置的时候,本身含义就是先
运算后增加1(运算指的是p++作为一个整体
与前面的进行运算;增加1指的是p+1),所
以实际上p++符号整体对外表现的值是p的
值,运算完成后p再加1.
【注意】是运算后p再加1,而不是p所指向的变量*p再加1
*++p:等同于 p += 1; *p;
解析:由于++在p的前面,++前置的含义是,先加1,得到一个新的p(它的值是原来p的值加1)。然后这个新的p再与前面的*结合.
【总结】无论是p++还是++p,都是指针p += 1,即p的值+1,而不是p所指向的变量*p的值+1。
++前置与&#
版权声明:本文标题:*p++,*(p++),*++p,(*p)++区别? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1688142257h184318.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论