论坛首页 编程语言技术论坛

C语言中的多级指针

浏览 27197 次
精华帖 (2) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-29  
troyconder 写道
指针是把双刃剑,弊大于利的那种瑕疵剑。

 

童鞋,地球很危险,回火星去吧,或者JAVA星!

0 请登录后投票
   发表时间:2009-06-29  
我看出来了,lz的意思是指针级数越高 表明用法就越高级了,哈哈
0 请登录后投票
   发表时间:2009-06-29  
wq163 写道
我看出来了,lz的意思是指针级数越高 表明用法就越高级了,哈哈

明摆的事儿么,一级的指针还有什么高级可言??对于多级指针的引用容易乱掉,所以拿个例子来看,有什么问题??
0 请登录后投票
   发表时间:2009-06-29  
好了好了,我现在郑重声明,本文严重的文不对题,不用讨论啦。哈哈,一不小心几乎成标题党了!感谢各位的留言。
另:如果能从中学到东西,那是最好,如果觉得太初级,请关闭本页,呵呵。
0 请登录后投票
   发表时间:2009-06-29   最后修改:2009-06-29

写得不错,再接再励,但是纠正一个错误,也可以说是拘泥于语法罢

函数接受三个参数,第一个是要分析的串,第二个是界定符序列,第三个是生成的"指针的指针"(即二维数组)的指针。实现比较简单,主要是看其中关于指针的用法:

粗体字这里,我觉得char **argv应该是一维数组,只不过它里面的每一个元素是一个字符串而已

char **argv <=> char *argv[] = {"aaaaa", "bbbbb", "cccccc"};

 

二维数组:

char ***argv <=> char *[][3] = {

{"aaaa", "bbb", "cccc"},

{"1111", "2222"},

}

 

望指正

0 请登录后投票
   发表时间:2009-06-29  
没有用到&,指针基础才涉及一半,

abruzzi 写道
diogin 写道
abruzzi 写道
ray_linn 写道
这叫高级??????。。。。。。

我发现现在有越来越多人喜欢弄些*******,.......当成优雅的趋势。


一个盛满了水的杯子要再盛水,就要把原先的水先全部倒光。

文中的指针的用法,应该已经不算是入门级别的了。当然,例子可能有点不够复杂,没有函数指针,函数指针表(指向函数指针的指针),但是经验中,2层以上的指针就比较难控制了,而这个例子可以很好的看出对3层指针的控制过程,不知道这位大侠心目中的“高级”是什么样子的?

如有必要,大可以在后边略作叙述,指教一二,那是欢迎之至,但是这种冷嘲热讽,就难免不知其所云了。


你这例子就是入门级别的,不要自认为高级。
学无止境,多拿些开源代码看看,体会下什么样的用法叫做“高级”。


完全没有我的例子有多么“高级”的意思,我也没有说我的例子不是入门级的,本来就是嘛,如果你可以通过例子学习到多级指针的用法,那是最好的了,也正是在下的目的所在。C中的指针难以驾驭是肯定的,你可以自己写着试一下,可能给出的例子对于这个题目来说有点不准确。

至于后边的什么“学无止境,多拿些开源代码看看,体会下什么样的用法叫做“高级”。”之类,说句不好听的,我看开源代码,给开源社区贡献代码的时候,你还不知道在哪儿卖鱼蛋呢。

哈哈,玩笑,纯属玩笑。

而且不考虑初级还是高级,希望LZ过一年再来看自己的代码,能写出这种内存使用代码的人也能如此狂妄,怪不得开源社区一直高质量代码百分比不高,原来多亏LZ你啊
0 请登录后投票
   发表时间:2009-06-29  
看到有人把char* argv[]写成char **argv,我就想拿本书往他头上劈头盖脑的打下去。

char* argv[]原来是多么好理解的事情,非得弄复杂了。。。
0 请登录后投票
   发表时间:2009-06-29  
oxromantic 写道
没有用到&,指针基础才涉及一半,
而且不考虑初级还是高级,希望LZ过一年再来看自己的代码,能写出这种内存使用代码的人也能如此狂妄,怪不得开源社区一直高质量代码百分比不高,原来多亏LZ你啊


大侠,你看完帖子了没有就在这儿喊?如果是看完了,那只能说你不识字了,我早就说明那个是《UNIX系统编程》中的一个例子,写的很好,所以贴出来大家学习下。不是我写的,再说了,说这个代码写的烂的人只不过是在暴露自己不学无术的真面目而已。

已经说了,文章的题目起的有点大了,例子给的比较简单,不好意思。
0 请登录后投票
   发表时间:2009-06-29  
ray_linn 写道
看到有人把char* argv[]写成char **argv,我就想拿本书往他头上劈头盖脑的打下去。

char* argv[]原来是多么好理解的事情,非得弄复杂了。。。


能看到的几乎所有的代码的main函数都是这样写的,你去盖他们脸吧,小心闪了腰!
0 请登录后投票
   发表时间:2009-06-29  
星号经常会导致一些 syntax error,得弄很多 typedef 才行 ……
LPCSTR argv[] ……

其实 char[][] 是可以的 …… 至少 gcc 可以
#include <stdio.h>
int main(int argc, char argv[][]) {
	printf("%s\n", ((char**)argv)[0]);
	return 0;
}
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics