⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_32294.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:32294 发表者:lzh08 发表日期:2003-03-11 12:01:13
<br>主题:学习《c++primer》遇到的一个问题,很是困惑,求助!
<br>内容:以下代码,是从《c++ primer》这本书上摘录的,&nbsp;&nbsp;int lexicoCompare (const string &amp;,const string &amp;);<BR>&nbsp;&nbsp; int sizeCompare(const string &amp;,const string &amp;);<BR><BR>&nbsp;&nbsp; typedef int (*PFI2S)(const string &amp;,const string &amp;);<BR>&nbsp;&nbsp; PFI2S compareFuncs[2] = <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;lexicoCompare,<BR>&nbsp;&nbsp;&nbsp;&nbsp;sizeCompare<BR>&nbsp;&nbsp; };<BR>PFI2S (*pfCompare)[2] = &amp;compareFuncs; <BR>其中,*pfCompare是指向指针数组的指针,如果这个可以成立,那么,为什么下边一段代码就编译不过去?<BR>static char * name[] ={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};<BR>char (*pi)[5] = &amp;name;<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2003-03-11 18:15:15
<br>内容:int num1,num2;<BR>int *num[]={&amp;num1,&amp;num2};<BR>int qq[2];<BR>int (*pnum)[2]=&amp;qq;<BR>int **kk=num;<BR><BR>问题是指针数组和指向指针的指针.<BR>int *num[]={&amp;num1,&amp;num2};定义的是一个指针数组,就是说这个数组里面的元素是指针.而且是放的一个&amp;int ,而不是放的一个int 数组名,所以说num是int **.而对于num本身来说,则是一个int **,所以说int **kk=num可以编译.<BR><BR>然后看int qq[2];定义的是一个数组,而且容量两个元素.qq是一个int *,但是&amp;qq是一个什么东西呢?你可能说因为qq是一个int *,所以&amp;qq是一个int **.但问题是qq不是普通的int*,而是定义了维数为2的int *,也就是说如果对&amp;qq做+1操作的话,我们是希望他跳int[2]个字节,而不是想int ** 做+1那样跳一个int*的字节.所以同样是指向指针的指针,但是一个来自数组,定义了维数,一个来自&amp;int,就只有一个int,所以为了指针的指针做运算处理,需要说清楚.<BR>所以int (*pnum)[2];定义了一个指向维数为2的int数组的指针.那么他就可以顺利通过int (*pnum)[2]=&amp;qq;而普通的int **就不可以.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-03-11 18:30:31
<br>内容:static char * name[] ={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};<BR><BR>char *(*urptr)[5]=&amp;name;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -