Nisy 发表于 2009-5-12 00:09:00

扔个没啥意思的关于指针的代码

这段代码将来的教学中会讲到 我会讲思路 视频里边我说过 聪明的人学代码 更聪明的人学思路

把书本上的概念看完就可以把书丢掉了 书上只有代码 你只能看到表层 深入的部分 就需要你去悟

一些基础的 对指针的应用 简单小测下大家对指针的理解

;>>>>>>>>>>>>>>>>>>>> 程序是输入三个整数 然后输出三个数的和、前两个数的和、和最大的数 >>>>>>>>>>>>>>>>

int f(int a,int b,int c)
{
        return a+b+c;
}

int f1(int a,int b)
{
        return a+b;
}

int* f2(int *a,int *b)
{
        return *a>*b?a:b;
}

main()
{
    double a;
    void *p;
    scanf("%d %d %d",(int *)&a,(int *)&a+1,(int *)&a+2);
    p=(void *)f;
    printf("%d \n",((int (*)(int,int,int))p)(*(int *)&a,*((int *)&a+1),*((int *)&a+2)));
    p=(void *)f1;
    printf("%d \n",((int (*)(int,int))p)(*(int *)&a,*((int *)&a+1)));
    p=(void *)f2;
    printf("%d \n",*((int *(*)(int *,int *))p)((int *)&a,((int *(*)(int *,int *))p)(((int *)&a+1),((int *)&a+2))));
}


;>>>>>>>>>>>>>>>>>>>> 代码比较恶心 纯粹恶搞 Code By: Nisy >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

HDd1145 发表于 2009-5-12 07:25:58

ABCdiyPE 发表于 2009-5-12 08:57:28

#include <iostream>
using std::cout;
using std::endl;
using std::cin;
void main()
{
double c;
char b[]="China PYG!";
void *p,*p1;
p=&b;
p1=&c;
cin >> *(int *)p1 >> *((int *)p1+1) >> *((int *)p1+2);
cout << *((int *)p1) + *((int *)p1+1) + *((int *)p1+2)<<endl;

cout << static_cast <int> (*((char*)p)) << endl;
}
看明白了一点。

千江月 发表于 2009-5-12 09:27:34

变量就是开辟了一个内存空间,不用管他是什么变量,然后我们用指针指向这个内存空间,我们可以用指针来获取我们需要的内存的大小,来输入我们需要的数据,这个内存空间的数据是由我们自己来做主的,这个空间我们需要的就是长度和地址。

hk35544 发表于 2010-10-14 21:06:38

这代码,果然吐血啊。
页: [1]
查看完整版本: 扔个没啥意思的关于指针的代码