博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 指针(不断更新)
阅读量:6463 次
发布时间:2019-06-23

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

c++指针只能说博大精深,在用的时候感觉好晕

1.指针类型转换

/*在指针的强制类型转换:ptr1=(TYPE*)ptr2中,如果sizeof(ptr2的类型)大于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是安全的。如果sizeof(ptr2的类型)小于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是不安全的*/#include 
using namespace std;void fun(char*s) { char c; c=*(s+3);*(s+3)=*(s+0);*(s+0)=c; c=*(s+2);*(s+2)=*(s+1);*(s+1)=c; } int main(){ int a=125; fun((char*)&a); cout << a; getchar();}

这个程序是实现整形的字节内容转换

#include 
using namespace std;struct MyStruct{ bool b;};int main(){ void* ptr = new bool; cout << sizeof(MyStruct); MyStruct* p = (MyStruct*)ptr; p->b = true; getchar();}

对于这个例子MyStruct的大小为1,所以满足条件,只含有虚函数的类大小为4,因为有虚指针,任何指针的大小都是4,空类大小为1,这个是c++规定的,因为系统要存储这个类型,大小为0就没法存储

2.NULL指针

#include 
using namespace std;int main(){ char* p = NULL;//空指针的值是0x00000000,NULL主要是内存删除之后赋成null,防止野指针 p = new char('a');//我也为空指针什么都不能操作,这个是给p重新分配一块内存 cout << *p << endl; delete p; *p = 'c';//p野指针,虽然内存删除了,但指针还是指向那个位置 p = NULL; *p = 'b';//p是空指针,对空指针操作直接报错,所以在在指针删除之后置为NULL,防止对野指针的误操作。 getchar();}

 

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

你可能感兴趣的文章
uC/OS-II
查看>>
hdu 4565 - so easy
查看>>
Day49 前端基础--jQuery
查看>>
随笔索引
查看>>
Python 基础 —— 字符串 方法
查看>>
Dubbo架构设计详解
查看>>
php笔记2012-10-28
查看>>
雷达的工作原理示意图_雷达的工作原理是什么
查看>>
growup怎么读_欧路词典|英汉-汉英词典 grow up是什么意思_grow up的中文解释和发音_grow up的翻译_grow up怎么读...
查看>>
js和ajax点赞功能代码_怎么利用ajax 和 js实现点赞功能
查看>>
android 等待圈_Android ProgressDialog 转圈圈
查看>>
join为什么每个字符都分割了 js_js中join()与 split()的对比
查看>>
antd 动态添加表单_antd中form表单添加与删除
查看>>
蓝桥杯单片机十一届省赛_卓因学员斩获第十一届“蓝桥杯”全国创意编程大赛一等奖...
查看>>
c语言倒计时不影响进程_linux学习15,执行程序就像读文章,换本书就相当于切换了进程...
查看>>
float正则表达式 带逗号_python正则表达式小试牛刀
查看>>
cf卡序列号修改工具_雄迈测试工装工具
查看>>
$.getjson异常信息提示_SpringBoot 异常处理
查看>>
数字盲打怎么练_一篇文章告诉你关于学习盲打的知识
查看>>
anaconda处理大数据_大数据的处理流程
查看>>