• 指针杂谈


    #include<cstdio>
    //http://blog.csdn.net/solomon1558/article/details/40798901
    //http://www.360doc.com/content/12/0403/11/9140140_200442978.shtml
    double do1()
    {
    	printf("uses do1
    ");
    	return 122.6546564;
    }
    int main()
    {
    	double (*do2)()=do1;//函数指针
    	int (*do3)()=(int(*) ())do1;//强制类型转换函数指针
    	printf("1 %f
    ",do2());//printf("%f
    ",(*do2)());也可以,正常的输出函数返回值
    	printf("2 %d
    ",do2);//正常的方式输出函数地址
    	printf("3 %f
    ",do2);//奇怪的方式输出函数地址
    	printf("4 %f
    ",do3());//(这样子强制类型转换函数指针,尽量不要用)%f的方式输出
    	printf("5 %d
    ",do3());//只会输出奇怪的东西
    	printf("6 %f
    ",do3);//用奇怪的方式输出函数的地址
    	printf("7 %d
    ",do3);//用正常的方式输出函数的地址
    	
    	int a=(int)(&do1);
    	printf("a1 %d
    ",*(int*)&a);
    	printf("a2 %f
    ",*(int*)&a);//实际上,前面好几个输出(如3)都是由于这个原因
    	//就是直接读取整数a在内存中的数据且把它当成浮点数输出,而浮点数和整数存储方式不同,因此输出错误
    	return 0;
    }
    #include<cstdio>
    //http://blog.csdn.net/stpeace/article/details/22220777
    struct 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
    ",a->p);
    	delete a;
    	A b;
    	b.f(3).f(4).f(6);
    	printf("2 %d
    ",b.p);
    	B c;
    	c.f(3)->f(4)->f(24);
    	printf("3 %d
    ",c.p);
    	B *d=new B;
    	d->f(5)->f(7)->f(9);
    	printf("4 %d
    ",d->p);
    	delete d;
    	printf("1a %d
    ",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;//去掉这句就不停吃内存 
    	}
    }


  • 相关阅读:
    MySQL具体解释(19)----------海量数据分页查询优化
    初试 Windows XP Embedded 系统开发1
    四元数(Quaternion)和旋转
    Qt动画效果的实现,QPropertyAnimation
    <QtEndian>
    QString,QByteArray和QBitArray之间的转换
    memmove和memcpy
    QStyle
    QStyle 新风格的实现
    实时操作系统
  • 原文地址:https://www.cnblogs.com/hehe54321/p/8470442.html
Copyright © 2020-2023  润新知