大学期间,学了一个学期的C语言,当然在学习数据结构的时候用到了C语言。那时我刚接触计算机,对编程一窍不通。上课学习学习,偶尔照着书本敲代码。大二下学期,丢了,不需要了。最近由于工作需要,需要用到JavaNativeInterface,所以学习了一天半的C++。本人对C++略有了解,写出自己的理解。一天半的时间,我并没有学到多少。主要搞清楚了以下几个问题:1)做了这么多年的指针,我还记得在C语言中,最难理解的应该就是指针了。还记得谭浩强的C语言书(书名是什么,真的忘了。不过作者谭浩强先生应该是大多数中国开发者都知道的),之前的大部分都是用的基本数据类型(也就是nativetypeinJava),还有一小部分突然说到指针,顿时蒙圈了。不过庆幸的是,我终于明白了指针,虽然后来忘记了。什么是指针?指针是保存另一事物地址的变量。指针是一个变量,具有特殊作用的变量称为指针。它的特殊功能是存放另一个东西的内存地址。也就是说,指针变量的值代表一个地址,而这个地址是属于另外一个东西的。那另一件事是什么?这就是我们所说的对象(或实例)。在C++中,还给这个对象起了一个别名:reference。总结一下:指针变量指向一个对象(或引用)。*、&用于声明语句:*表示声明是指针,&表示引用。这里所说的声明语句可以是变量声明,也可以是函数声明。在函数声明中,返回值、函数名和参数都可以声明为指针。使用指针变量时,(*变量名)表示获取一个对象。(&reference)代表取一个指针。voidpersonTest(Person*p){if(p!=NULL){p->setAddress("BeiJing,HaiDian");//指针赋值(*p).setName("FangJiNuo");//使用对象方式赋值。(*p).setAge(23);printf("showinfo:\n%s\n",(*p).toString());deletep;p=NULL;}}这两个字函数指针和函数指针八话,不知道被多少人绊倒过,其实很好理解。中国人说话大多是用叙事的方式。这两个词都是省略句,但是省略的是助词。函数指针的全称是:函数名就是指针。指针函数的全称是:返回值为指针的函数。这两个中,指针函数比较好理解:char*func(char[]p);这个函数是一个指针函数。函数指针,函数名就是指针。指针也是一个变量,所以可以理解为:函数名是一个变量。下面是一个函数指针变量的声明:typedefint(*func)(intx);然后将这个变量作为另一个函数的参数:typedefint(*func)(intarg);//定义一个函数指针/*一个函数指针实现*funcImpl可以赋值为func的值。*/intfuncImpl(intarg){returnarg;}/**声明一个函数,将函数指针作为函数调用的参数*/voidcall(funcf){for(inti=0;i<10;i++){cout<
