社区
C++ 语言
帖子详情
为什么第三行输出的*ptr与第一行的*ptr值不同?
wzw12315
2009-07-19 01:20:53
#include<iostream>
using namespace std;
void main()
{
int a=10;
int *ptr;
ptr=&a;
cout<<*ptr<<'\t'<<ptr<<'\t'<<a<<endl;
cout<<*ptr++<<endl;
cout<<*ptr<<endl;
}
为什么第三行输出的*ptr与第一行的*ptr值不同?
第三行的输出值为1245123,为什么?
...全文
46
3
打赏
收藏
为什么第三行输出的*ptr与第一行的*ptr值不同?
#include using namespace std; void main() { int a=10; int *ptr; ptr=&a; cout<<*ptr<<'\t'<<ptr<<'\t'<<a<<endl; cout<<*ptr++<<endl; cout<<*ptr<<endl; } 为什么第三行输出的*ptr与第一行的*ptr值不同? 第三行的输出值为1245123,为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BuleRiver
2009-07-19
打赏
举报
回复
把
cout <<*ptr++ <<endl;
改成
cout <<(*ptr)++ <<endl;
冷雨Justin
2009-07-19
打赏
举报
回复
因为你的指针已经不再指向变量a了,在第二行中的ptr++语句后,ptr指向了a的地址2个或4个字节之后。
DarkChampion
2009-07-19
打赏
举报
回复
因为你在第二行把ptr给改了:ptr++
ptr已经越界了
解析C++中指向对象的指针使用
C++指向对象的常指针 将指针变量声明为const型,这样指针
值
始终保持为其初
值
,不能改变。 如: ...也可以在定义指针变量时使之初始化,如将上面第2, 3行合并为: Time * const
ptr
1=&t1; //指
*
ptr
++、*++
ptr
、++*
ptr
和(*
ptr
)++
*++
ptr
、++*
ptr
、*
ptr
++、和(*
ptr
)++ int num[] ={1,3,5,7,9}; int*
ptr
_num = num; 先看*++
ptr
,这个很容易看出来先对指针移位地址加1,然后取
值
结果应该是3 int num[] ={1,3,5,7,9}; int*
ptr
_num = num...
C++系列第2:C++2.0(11+14+17+20)详解及多线程实战
90 5.5.2 std::shared_
ptr
90 5.5.3 std::unique_
ptr
91 5.5.4 std::weak_
ptr
91 第6章 C++2.0多线程原理与实战 93 什么是并发 93 并发的方式 93 为什么使用并发 95 线程简介 96 创建线程的三种方式 97 1. 通过函数 ...
保姆式解释const char *
ptr
,char const *
ptr
,char *const
ptr
的差别
从右往左读:
ptr
是指向一个char型的const指针。...第一类:const char *
ptr
和char const *
ptr
。
ptr
是一个 指向 const char 的指针。
ptr
是一个 指向 char const 的指针。
ptr
是一个 指向char 的常量指针。
*
ptr
++和*(
ptr
++)的区别
1.*取
值
运算符与++运算的优先级问题。 ++的优先级要高于*,所以两者运算的结果是一样的,也就是加括号和不加括号是效果是一样的。 2.举个例子 int main() { char *
ptr
=''hello'' printf("%c\n",*
ptr
); ...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章