已采纳回答 / DoDream
等号左边的意思是定义一个函数指针pquadrate,将quadrate函数的地址赋给pquadrate,quadrate是一个返回值是int,有一个int参数的函数。推荐你一个不错的网站,百度搜索C++技术网,第一个就是了,里面有一些C语言的教程,那些人写得挺用心,通俗易懂,能学的东西还挺多,这个网站还有很多不错的资源可以下载,例如电子书,IDE等,如果你技术上来了,还可以去做一下里面的练习小项目,感觉收获丰富。
2015-10-26
已采纳回答 / onemoo
编译器不会对数组访问越界进行检查。因为数组和指针是有密切联系的,很多时候编译器无法确定你访问的位置是否在合理的范围内,所以编译器就干脆对此不检查了。 实践中,有经验的程序员经常活用这种数组和指针的关系。当然,你这两行代码确实是错的,对array[3]的访问确实越界了。虽然能编译通过,但运行时可能会发生错误。
2015-10-24
定义指针变量时在变量类型和变量名中间加个 *, 指针变量的值本身是一个地址,在使用指针变量时,如果,在指针变量前加一个*表示取指针变量的值表示的地址中的内容,如果不加*则表示取指针变量的值,就是指针变量存的地址。
2015-10-14
函数指针,不过说白了就是这样:
int quadrate(int a);
// main中
int a=3;
int (*p)(int a);
p = &quadrate;
int s = (*p) (a);
//最后就相当于quadrate(a)
int quadrate(int a);
// main中
int a=3;
int (*p)(int a);
p = &quadrate;
int s = (*p) (a);
//最后就相当于quadrate(a)
2015-10-14
&a:返回变量a的内存地址
*a:用来保存变量a的内存地址
&和*运算符恰好相反。&运算符接收一个数据,然后告诉你这个数据保存在哪里;*运算符接收一个地址,然后告诉你这个地址中保存的是什么数据。
例:int *a = &a
*a:用来保存变量a的内存地址
&和*运算符恰好相反。&运算符接收一个数据,然后告诉你这个数据保存在哪里;*运算符接收一个地址,然后告诉你这个地址中保存的是什么数据。
例:int *a = &a
2015-10-14