博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
char *p = NULL,int *p = NULL的区别
阅读量:2434 次
发布时间:2019-05-10

本文共 548 字,大约阅读时间需要 1 分钟。

void  main()  {             int  *p  =  NULL;             cout  <<  p  <<  endl;             cout  <<  &p  <<  endl;  }  输出结果为:  0x00000000  0x00125731  void  main()  {             char  *p  =  NULL;             cout  <<  p  <<  endl;             cout  <<  &p  <<  endl;  }  输出:  报错!中断!

原因:

cout << p << endl;
对于:
int *p;
//cout << p; 输出的是p指针所指向内存单元的地址(当为int *p = NULL;时,p值为0)
而对于类型为:
char *p;
// cout << p; 输出的是一个字符串,并不是p指针所指向内存单元的地址,
二者输出p的含义不一样。

如何获得 char *p = “TEST “;中字符串“TEST”的地址呢? &p为指针在堆栈中的地址,cout << p;又不能输出 “TEST “的地址,

方法:
cout << (int)p;

转载地址:http://vtomb.baihongyu.com/

你可能感兴趣的文章
智能手机Smartphone开发从零起步(五)(转)
查看>>
SEO技巧中你可能没有注意的细节(转)
查看>>
微软开始二代Windows Live 不见Cloud OS踪影
查看>>
创建ISAPI扩展(转)
查看>>
病毒及木马预警一周播报(06.04.17~04.23)(转)
查看>>
黑客口述:我的第一台3389肉鸡的经历(转)
查看>>
关于 cleanup stack 和 two phase consturction [1](转)
查看>>
Oracle数据导入导出imp/exp (转)
查看>>
如何构建固定网(PSTN)短消息系统(转)
查看>>
Delphi文件管理(三)(转)
查看>>
关于网线的一些问题的解答(转)
查看>>
深度分析Win 2003自动升级补丁功能(转)
查看>>
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60 平台(转)
查看>>
来访者地址统计,很好的一个程序!(转)
查看>>
UpdateWindow函数 (转)
查看>>
移动通信的主要测量指标及注意事项(转)
查看>>
无盘网络正确网络配置建议-减少卡机蓝屏关键(转)
查看>>
如何在Delphi中调用oracle的存储过程返回数据集(转)
查看>>
ASP指南:ADO/SQL(数据存取) (转)
查看>>
用本地 C++ 应对大量 Series 60 图形(转)
查看>>