扔个没啥意思的关于指针的代码
这段代码将来的教学中会讲到 我会讲思路 视频里边我说过 聪明的人学代码 更聪明的人学思路把书本上的概念看完就可以把书丢掉了 书上只有代码 你只能看到表层 深入的部分 就需要你去悟
一些基础的 对指针的应用 简单小测下大家对指针的理解
;>>>>>>>>>>>>>>>>>>>> 程序是输入三个整数 然后输出三个数的和、前两个数的和、和最大的数 >>>>>>>>>>>>>>>>
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 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #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;
}
看明白了一点。 变量就是开辟了一个内存空间,不用管他是什么变量,然后我们用指针指向这个内存空间,我们可以用指针来获取我们需要的内存的大小,来输入我们需要的数据,这个内存空间的数据是由我们自己来做主的,这个空间我们需要的就是长度和地址。 这代码,果然吐血啊。
页:
[1]