august 发表于 2007-7-11 11:35:38

想请教指针应该怎么学

书上的也看过几遍了,但还是没搞懂,简单的概念是明白了,像 int x,*p; p=&x;
这些简单的定义是明白了,但是到二级指针就搞不懂了,像使其指向二维数组这种题,
char arr   好像有这样的指针定义(**p), 也有(*p(5))(怎样写我都忘记了)
然后又看到有说 char **str等价于 char *str[]
                              char(*str)等价于 char [];
真是越搞越糊涂了,到底应该怎么去学去理解指针呢?有没什么更好的指针的运用教程之类了?

duzhi5368 发表于 2007-7-11 13:06:04

指针,指针的指针,指针数组,数组指针,引用这些原本就是最难拿常规逻辑理解的地方
好的教材,完全没有,只有慢慢磨..
很多人学程序都在这里倒了,然后放弃了

duzhi5368 发表于 2007-7-11 13:14:52

没有诀窍,没有捷径,只有一个代码一个代码的打出来测试,慢慢的循序渐进,在你长期积累之后,总会有一天可以灵光一现,找到适合自己理解的说明的.
我有个朋友,以前跟我一起学程序,原计划是1年内把C/C++/JAVA/C#全部精通,结果,三年没见,前几天看他QQ签名,签名档上写着"用五年来了解C++",当然也没有弄的象他那样极端,但是也反映出,真正的C++并非想象中的那么容易,包括指针这里,希望能花大段时间在上面.

若是实在不理解,有个好办法,把例子背下来,以后慢慢消化,不要卯在这上,那只会更糊涂.

对了,八月的数据结构复习OK了?

august 发表于 2007-7-11 13:26:52

还没    另外我想问问, 学了C等于C++也差不多吗?还是C跟C++相差很远呢? 应该要精通C还是只精通C++就行呢?

duzhi5368 发表于 2007-7-11 13:48:18

C和C++,完全是两种不同的语言.除了个别关键字相同以外,没什么相同的.
你一定要把这俩当成不同的语言来学,否则必然学不好C++

C++之父都说了,他非常后悔,后悔将这门语言命名为"C++",如果当时把它命名为X语言的话就不会出现现在的问题了:很多仅仅懂C语言的程序员都称自己懂C++,其实完全不是这样.

若是学一门语言,仅仅是学其关键字的话,那么我可能懂了不下8门语言了.但是光懂关键字有什么意义呢?那么C++和JAVA又有什么区别呢?和其他语言有什么区别呢?还不都是那50个关键字.if else while for do goto

august 发表于 2007-7-11 14:03:58

那我应该把C学到什么程度再学C++呢?

shawind 发表于 2007-7-11 14:14:25

捷径也不是没有。有一个真捷径和一个伪捷径。
去学java,ruby,python这样的语言,干脆回避指针的问题。
缺点是不能做底层程序员,特别对于是立志作引擎的人来说。
这是伪捷径。
真捷径是,去啃汇编。从最根本上认识指针的本质。

shawind 发表于 2007-7-11 14:16:40

c和c++没有必然联系,只是很偶然的c++能兼容c而已。
从零开始学c++也一样。

august 发表于 2007-7-11 14:18:41

指针我是一定要学的, 但那个汇编又是什么东东呢?要看哪本书籍学习汇编才是最好的呢?

duzhi5368 发表于 2007-7-11 14:29:56

汇编..先别贪.
要真的深入了解汇编的话,可比深入理解C++难多了.
我也算零散学了不少东西的皮毛,唯一望而却步的就是汇编了.我觉得,能够简单的看懂C++汇编代码,能够理解别人的汇编加速原理就OK了.这玩意难的恐怖.

另外学汇编也不是某本书最好,因为每本书都有自己的特色,适合我的未必适合你.但如我上面所说,还是找本简单的薄的入门书籍看看吧...直接啃汇编大厚本会打击信心的.

但是如shawind所说,了解汇编之后,指针自然的会无师自通了,包括很多C++的指令也都非常容易理解了.
页: [1] 2
查看完整版本: 想请教指针应该怎么学