指针杂谈
来源:互联网 发布:淘宝店没生意怎么办 编辑:程序博客网 时间:2024/06/05 11:49
#include<cstdio>//http://blog.csdn.net/solomon1558/article/details/40798901//http://www.360doc.com/content/12/0403/11/9140140_200442978.shtmldouble do1(){printf("uses do1\n");return 122.6546564;}int main(){double (*do2)()=do1;//函数指针int (*do3)()=(int(*) ())do1;//强制类型转换函数指针printf("1 %f\n",do2());//printf("%f\n",(*do2)());也可以,正常的输出函数返回值printf("2 %d\n",do2);//正常的方式输出函数地址printf("3 %f\n",do2);//奇怪的方式输出函数地址printf("4 %f\n",do3());//(这样子强制类型转换函数指针,尽量不要用)%f的方式输出printf("5 %d\n",do3());//只会输出奇怪的东西printf("6 %f\n",do3);//用奇怪的方式输出函数的地址printf("7 %d\n",do3);//用正常的方式输出函数的地址int a=(int)(&do1);printf("a1 %d\n",*(int*)&a);printf("a2 %f\n",*(int*)&a);//实际上,前面好几个输出(如3)都是由于这个原因//就是直接读取整数a在内存中的数据且把它当成浮点数输出,而浮点数和整数存储方式不同,因此输出错误return 0;}
#include<cstdio>//http://blog.csdn.net/stpeace/article/details/22220777struct A{int p;A& f(int x){p=x;return *this; }};struct B{int p;B *f(int x){p=x;return this; }};int main(){A *a=new A;a->f(3).f(5).f(25);printf("1 %d\n",a->p);delete a;A b;b.f(3).f(4).f(6);printf("2 %d\n",b.p);B c;c.f(3)->f(4)->f(24);printf("3 %d\n",c.p);B *d=new B;d->f(5)->f(7)->f(9);printf("4 %d\n",d->p);delete d;printf("1a %d\n",a->p);}
#include<cstdio>struct A{int p;A& f(int x){p=x;return *this; }};int main(){while(true){A *a=new A;delete a;//去掉这句就不停吃内存 }}
阅读全文
0 0
- 指针杂谈
- 杂谈指针与数组
- C语言指针杂谈
- 杂谈:智能指针与库
- 杂谈指针捆绑存储区
- C 杂谈之 指针与数组 (一)
- C 杂谈之 指针与数组 (二)
- C语言杂谈:指针与数组 (上)
- C语言杂谈:指针与数组 (下)
- C语言杂谈:指针与数组 (上)
- [C++杂谈]——C++指针
- c语言指针杂谈(一)
- 杂谈
- 杂谈
- 杂谈
- 杂谈
- 杂谈
- 杂谈
- 在flask中使用jsonify和json.dumps的区别
- 用rviz显示urdf模型
- Angular是MVC还是MVVM
- Runtime类
- oracle数据库用户连接方式
- 指针杂谈
- VS好用插件
- webapck 利用HtmlWebpackPlugin 替换html的title
- 自定义View中,四个参数的构造函数,其最后两个参数的含义
- 我的ACM之路 7-25(字符串)
- 网站注册登录等短信验证码
- 论坛和资料收集
- Mybatis最入门---ResultMaps基本用法
- git常用指令