谁能说服我用指针,给50分 我一直到现在,对于线形表(数组结构),字符串等等都不喜欢用指针,不知道是不是在回避.大家努力说服我吧.只能给50分,没分了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不用指针,强烈建议学点其他语言,千万别学C/C++!因为,不用指针,就不是C/C++程序! 你学C干什么,学C++干什么,还不是为了学VC(MFC),但是你不懂指针,一个HELLO的MFC程序都会让你不知所云 好!有个性,眼见是个JAVA的好苗子嘛!建议你学习JAVA.如果你和sun有仇,喜爱gates,那果学习VB.这两个都是不用指针的"古往今来大宗师". char * (pBuffer[4])={"string one ", "string two","string three","string pointer four"};//pBuffer[3]="string pointer four"int nArray[]={10,11,21,13,48,15};int *pInt=nArray;int nNum=3[pInt];//nNum=13char* pString1="this is string1";char* pString2=new char[sizeof(pString1)],* pStr=pString2;while(*pString1!='\0')*(pStr++)=*(pString1++);pStr='\0';pString2="this is string1";double dArray[2][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};double *dPtr=dArray[0];double dNum=*(dPtr+5);//dNum==6.0上面只是指针的数值上的应用,还要函数指针,等等 强烈同意 Zark(金陵五月)的意见!去学JAVA吧!指针是个很烦的东西!不过要是你用C,不用指针,你是超人. 我其实最奇怪的就是为什么很多函数是指针类型的比如 void *creatbitree();只知道一些皮毛,具体有什么区别我真的不知道.望赐教 很难想象没有指针的c语言程序,简直干不了什么!java 中说是没有指针,其实深度想想也有指针的影子! 嗯,void *creatbitree();不是函数指针啊,它是返回void*的函数啊,函数的指针应该写成void (*creatbitree)();函数的指针代表的函数的地址,函数的调用就是直接转到函数的地址,(这个部分我不是很清楚),而且一般调用dll中的函数的时候用的比较经常,这样可以得到指向载入到进程中的dll函数的地址,还有的时候就是函数的参数是函数的情况,比如说有个求积分的函数,float integral(float (*p)(float),float a,float b,int n),它需要知道用什么函数求积分,所以第一个参数是函数的指针,那么只要是float xxx(float f)类型的函数都可以把函数名传递给integral。具体的可以参考相关书籍。我觉的楼上的大侠们说的也是一些原因,可以参考的,当然关键在于你的习惯问题了,在需要用指针的时候,就用,和其它类型结合,相辅相成,也许这样才是编程之道吧,我们都在相互学习中啊,我也是菜鸟,所以以上意见仅供参考吧 你如果直接使用字符串或者是结构 在你的程序内存中就必须开辟一个大小相同的空间 如果你需要考虑内存的问题当然OK 但是你在编写大型程序的时候呢???如果呢使用的是指针的话一个1000个大小的字符串传递到一个函数用指针传递只需要4位就OK了 你说说看 你要不要用指针????在写小冬冬的时候你不需要考虑这么多 可是养成一个良好的编程习惯不是好吗???这样有利于自己的成长!! 初入C++,请各位大虾提点建议 vs2005编译链接出错 找不到WTS APIS枚举进程用户名的具体资料 自己写的下载软件,有很多站连不上去,为什么啊 请问:在MDI中怎样激活处于后台的一视图? 如何让应用程序IE窗口中运行 成为MFC高手要多久?有前途吗? 新手:要从一个文件里读东西,然后显示成一个表格,用什么控件呀?DBGrid? 高手请指点,帮帮忙,局域网内运行正常的网络程序为何不能扩充到广域网上?(网关原因??) 如何取得指定进程的当前路径? 挑战高手,关于用vc开发基于excel的com的问题(用atl),分不够可以再添加! 关于终止进程
因为,不用指针,就不是C/C++程序!
int *pInt=nArray;
int nNum=3[pInt];//nNum=13char* pString1="this is string1";
char* pString2=new char[sizeof(pString1)],* pStr=pString2;
while(*pString1!='\0')
*(pStr++)=*(pString1++);
pStr='\0';pString2="this is string1";double dArray[2][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};
double *dPtr=dArray[0];
double dNum=*(dPtr+5);//dNum==6.0上面只是指针的数值上的应用,还要函数指针,等等
比如 void *creatbitree();
只知道一些皮毛,具体有什么区别我真的不知道.
望赐教
java 中说是没有指针,其实深度想想也有指针的影子!
写成void (*creatbitree)();
函数的指针代表的函数的地址,函数的调用就是直接转到函数的地址,(这个部分我不是很清楚),而且一般调用dll中的函数的时候用的比较经常,这样可以得到指向载入到进程中的dll函数的地址,还有的时候就是函数的参数是函数的情况,比如说有个求积分的函数,
float integral(float (*p)(float),float a,float b,int n),它需要知道用什么函数求积分,所以第一个参数是函数的指针,那么只要是float xxx(float f)类型的函数都可以把函数名传递给integral。具体的可以参考相关书籍。
我觉的楼上的大侠们说的也是一些原因,可以参考的,当然关键在于你的习惯问题了,在需要用指针的时候,就用,和其它类型结合,相辅相成,也许这样才是编程之道吧,我们都在相互学习中啊,我也是菜鸟,所以以上意见仅供参考吧
在写小冬冬的时候你不需要考虑这么多 可是养成一个良好的编程习惯不是好吗???这样有利于自己的成长!!