C语言里p++和(*p)++有区别吗
刚考完,改错答案是p++,我改成了(*)p++,原题是*p++,请问我改对了吗,*p当然就是指针了哈,请高手回答,谢了~~...
刚考完,改错答案是p++,我改成了(*)p++,原题是*p++,请问我改对了吗,*p当然就是指针了哈,请高手回答,谢了~~
展开
5个回答
展开全部
c++语言是c语言发展起来的,所以继承了c语言几乎所有的特点,但c++语言又有自己的个性。c语言是一种面向过程的编程语言,而c++主要是面向过程的,因此c++有类的概念,而c语言就没有。c++的功能强大,编译器复杂,适合高端程序的设计和编辑,c语言的编译器简易,适合低端程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
| ...... |
| 12h | 100h <--- p
| 0fh | 101h
| ...... |
| ...... |
(指针p初始值指向100h)
| ...... |
| 12h | 100h
| 0fh | 101h <--- p ++
| ...... |
| ...... |
(p自增1后指向101h)
| ...... |
| 13h | 100h <--- (*p) ++
| 0fh | 101h
| ...... |
| ...... |
(*p自增1后,内存字节单元的数据变为13h)
P既然是指针类型的变量,那么它指向的是地址,而对其进行解引用操作之后就成为指向的数据。从上图可以看出来,假设指针p指向字节单元为100h,则p ++执行后指向下一个字节地址单元101h。而*p为100h中的值12h,执行(*p) ++后,地址100h中存储的值为13h.
| 12h | 100h <--- p
| 0fh | 101h
| ...... |
| ...... |
(指针p初始值指向100h)
| ...... |
| 12h | 100h
| 0fh | 101h <--- p ++
| ...... |
| ...... |
(p自增1后指向101h)
| ...... |
| 13h | 100h <--- (*p) ++
| 0fh | 101h
| ...... |
| ...... |
(*p自增1后,内存字节单元的数据变为13h)
P既然是指针类型的变量,那么它指向的是地址,而对其进行解引用操作之后就成为指向的数据。从上图可以看出来,假设指针p指向字节单元为100h,则p ++执行后指向下一个字节地址单元101h。而*p为100h中的值12h,执行(*p) ++后,地址100h中存储的值为13h.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p++是指针自加1,而(*p)++是指针所指向的值自加1,效果是不一样的,所以……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不一样
(*)p++ 是 先对p取* 然后 p ++
*p++ 是 p++ 然后取 * (右结合)
(*)p++ 是 先对p取* 然后 p ++
*p++ 是 p++ 然后取 * (右结合)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |