??xml version="1.0" encoding="utf-8" standalone="yes"?>少妇久久久久久被弄到高潮,久久久免费观成人影院
,久久精品国产亚洲综合色 http://www.shnenglu.com/geforcex/zh-cn Fri, 09 May 2025 02:31:47 GMT Fri, 09 May 2025 02:31:47 GMT 60 讲讲volatile的作?? http://www.shnenglu.com/geforcex/archive/2008/07/27/57316.htmlhalCode halCode Sun, 27 Jul 2008 13:56:00 GMT http://www.shnenglu.com/geforcex/archive/2008/07/27/57316.html http://www.shnenglu.com/geforcex/comments/57316.html http://www.shnenglu.com/geforcex/archive/2008/07/27/57316.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/57316.html http://www.shnenglu.com/geforcex/services/trackbacks/57316.html 1). q行讑֤的硬件寄存器Q如Q状态寄存器Q? 2). 一个中断服务子E序中会讉K到的非自动变?Non-automatic variables) 3). 多线E应用中被几个Q务共享的变量 回答不出q个问题的h是不会被雇䄦的。我认ؓq是区分CE序员和嵌入式系l程序员的最基本的问题。嵌入式pȝE序员经常同g、中断、RTOS{等打交道,所用这些都要求volatile变量。不懂得volatile内容会带来N? 假设被面试者正地回答了这是问题(嗯,怀疑这否会是这PQ我稍微深I一下,看一下这家伙是不是直正懂得volatile完全的重要性? 1). 一个参数既可以是constq可以是volatile吗?解释Z么? 2). 一个指针可以是volatile 吗?解释Z么? 3). 下面的函数有什么错误: int square(volatile int *ptr) { return *ptr * *ptr; } 下面是答案: 1). 是的。一个例子是只读的状态寄存器。它是volatile因ؓ它可能被意想不到地改变。它是const因ؓE序不应该试囑֎修改它? 2). 是的。尽这q不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时? 3). q段代码的有个恶作剧。这D代码的目的是用来返指针*ptr指向值的qxQ但是,׃*ptr指向一个volatile型参敎ͼ~译器将产生cM下面的代码: int square(volatile int *ptr) { int a,b; a = *ptr; b = *ptr; return a * b; } ׃*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,q段代码可能q不是你所期望的^方|正确的代码如下: long square(volatile int *ptr) { int a; a = *ptr; return a * a; } 讲讲我的理解Q?Q欢q打板子...~~Q) 关键在于两个地方Q?nbsp; 1. ~译器的优化 (请高手帮我看看下面的理解) 在本ơ线E内, 当读取一个变量时Qؓ提高存取速度Q编译器优化时有时会先把变量dC个寄存器中;以后Q再取变量值时Q就直接从寄存器中取| 当变量值在本线E里改变Ӟ会同时把变量的新值copy到该寄存器中Q以便保持一? 当变量在因别的线E等而改变了|该寄存器的g会相应改变,从而造成应用E序d的值和实际的变量g一? 当该寄存器在因别的线E等而改变了|原变量的g会改变,从而造成应用E序d的值和实际的变量g一?nbsp; 举一个不太准的例子Q?nbsp; 发薪资时Q会计每ơ都把员工叫来登C们的银行卡号Q一ơ会计ؓ了省事,没有x登记Q用了以前登记的银行卡号Q刚好一个员工的银行卡丢了,已挂p银行卡号Q从而造成该员工领不到工资 员工 Q- 原始变量地址 银行卡号 Q- 原始变量在寄存器的备?nbsp; 2. 在什么情况下会出??楼所? 1). q行讑֤的硬件寄存器Q如Q状态寄存器Q?nbsp; 2). 一个中断服务子E序中会讉K到的非自动变?Non-automatic variables) 3). 多线E应用中被几个Q务共享的变量 补充Q?volatile应该解释?#8220;直接存取原始内存地址”比较合适,“易变?#8221;q种解释直有点误ghQ?nbsp; “易变”是因为外在因素引LQ象多线E,中断{,q不是因为用volatile修饰了的变量是“易变”了,假如没有外因Q即使用volatile定义Q它也不会变化; 而用volatile定义之后Q其实这个变量就不会因外因而变化了Q可以放心用了Q?大家看看前面那种解释Q易变的Q是不是在误gh Q-Q-Q-Q-Q-Q-明示例如下:Q-Q-Q-Q-Q-Q-Q-Q-Q?wbr>Q? volatile关键字是一U类型修饰符Q用它声明的cd变量表示可以被某些编译器未知的因素更改,比如Q操作系l、硬件或者其它线E等。遇到这个关键字声明的变量,~译器对讉K该变量的代码׃再进行优化,从而可以提供对Ҏ地址的稳定访问? 使用该关键字的例子如下: int volatile nVint; >>>>当要求用volatile 声明的变量的值的时候,pȝL重新从它所在的内存d数据Q即使它前面的指令刚刚从该处dq数据。而且d的数据立刻被保存? 例如Q? volatile int i=10; int a = i; ... //其他代码Qƈ未明告诉编译器Q对iq行q操? int b = i; >>>>volatile 指出 i是随时可能发生变化的Q每ơ用它的时候必Mi的地址中读取,因而编译器生成的汇~代码会重新从i的地址d数据攑֜b中。而优化做法是Q由于编译器发现两次从iL据的代码之间的代码没有对iq行q操作,它会自动把上ơ读的数据放在b中。而不是重Ci里面诅R这样以来,如果i是一个寄存器变量或者表CZ个端口数据就Ҏ出错Q所以说volatile可以保证对特D地址的稳定访问? >>>>注意Q在vc6中,一般调试模式没有进行代码优化,所以这个关键字的作用看不出来。下面通过插入汇编代码Q测试有无volatile关键字,对程序最l代码的影响Q? >>>>首先Q用classwizardZ个win32 console工程Q插入一个voltest.cpp文gQ输入下面的代码Q? >> Qi nclude <stdio.h> void main() { int i=10; int a = i; printf("i= %d",a); //下面汇编语句的作用就是改变内存中i的|但是又不让编译器知道 __asm { mov dword ptr [ebp-4], 20h } int b = i; printf("i= %d",b); } 然后Q在调试版本模式q行E序Q输出结果如下: i = 10 i = 32 然后Q在release版本模式q行E序Q输出结果如下: i = 10 i = 10 输出的结果明显表明,release模式下,~译器对代码q行了优化,W二ơ没有输出正的i倹{下面,我们?i的声明加上volatile关键字,看看有什么变化: Qi nclude <stdio.h> void main() { volatile int i=10; int a = i; printf("i= %d",a); __asm { mov dword ptr [ebp-4], 20h } int b = i; printf("i= %d",b); } 分别在调试版本和release版本q行E序Q输出都是: i = 10 i = 32 q说明这个关键字发挥了它的作用! Q-Q-Q-Q-Q-Q-Q-Q-Q?wbr>Q-Q-Q-Q-Q-Q-Q-Q-Q-Q? volatile对应的变量可能在你的E序本n不知道的情况下发生改? 比如多线E的E序Q共同访问的内存当中Q多个程序都可以操纵q个变量 你自qE序Q是无法判定合适这个变量会发生变化 q比如,他和一个外部设备的某个状态对应,当外部设备发生操作的时候,通过驱动E序和中断事Ӟpȝ改变了这个变量的数|而你的程序ƈ不知道? 对于volatilecd的变量,pȝ每次用到他的时候都是直接从对应的内存当中提取,而不会利用cache当中的原有数|以适应它的未知何时会发生的变化Q系l对q种变量的处理不会做优化——显然也是因为它的数值随旉可能变化的情c? -------------------------------------------------------------------------------- 典型的例? for ( int i=0; i<100000; i++); q个语句用来试I@环的速度? 但是~译器肯定要把它优化掉,Ҏ׃执行 如果你写?nbsp; for ( volatile int i=0; i<100000; i++); 它就会执行了 volatile的本意是“易变?#8221; ׃讉K寄存器的速度要快qRAMQ所以编译器一般都会作减少存取外部RAM的优化。比如: static int i=0; int main(void) { ... while (1) { if (i) dosomething(); } } /* Interrupt service routine. */ void ISR_2(void) { i=1; } E序的本意是希望ISR_2中断产生Ӟ在main当中调用dosomething函数Q但是,׃~译器判断在main函数里面没有修改qiQ因? 可能只执行一ơ对从i到某寄存器的L作,然后每次if判断都只使用q个寄存器里面的“i副本”Q导致dosomething永远也不会被 调用。如果将变量加上volatile修饰Q则~译器保证对此变量的d操作都不会被优化Q肯定执行)。此例中i也应该如此说明? 一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它E序的变量需要加volatileQ? 2、多d环境下各d间共享的标志应该加volatileQ? 3、存储器映射的硬件寄存器通常也要加volatile说明Q因为每ơ对它的d都可能由不同意义Q? 另外Q以上这几种情况l常q要同时考虑数据的完整性(怺兌的几个标志读了一半被打断了重写)Q在1中可以通过关中断来? 玎ͼ2中可以禁止Q务调度,3中则只能依靠g的良好设计了?
]]> 一个老工E师的话Q{载) http://www.shnenglu.com/geforcex/archive/2006/04/11/5266.htmlhalCode halCode Tue, 11 Apr 2006 02:51:00 GMT http://www.shnenglu.com/geforcex/archive/2006/04/11/5266.html http://www.shnenglu.com/geforcex/comments/5266.html http://www.shnenglu.com/geforcex/archive/2006/04/11/5266.html#Feedback 2 http://www.shnenglu.com/geforcex/comments/commentRss/5266.html http://www.shnenglu.com/geforcex/services/trackbacks/5266.html [1]好好规划自己的\Q不要跟着感觉赎ͼҎ个h的理惛_{安排,l大部分人ƈ不指望成Z么院士或教授Q而是希望zd滋润一些,爽一些。那么,需要慎重安排自q轨迹。从哪个行业入手Q逐渐对该行业深入了解Q不要频J蟩槽,特别是不要ؓ了一点工资而{U阵圎ͼ从长q看Q这炚wҎ不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频J地动荡不是上策Q最后你对哪个行业都没有摔R,永远是新手! [2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!l自己很大压力,如果你的心思全部放在这上面Q那么注定你成为孔乙己一cȝ人物Q适可而止ZQ因为技术只不过是你今后前途的支柱之一Q而且q不是最大的支柱?br /> [3]不要d技术高手,只去做综合素质高手!在企业里P我们时常瞧不h人,说他“什么都不懂Q凭啥拿那么多钱Q凭啥升官!”这是普遍的典型的工E师的迂腐之a?051很牛吗?人家能上d然有他的本事Q而且是你没有的本事。你xQ老板搞经营那么多q_N见识不如你这个新兵?人家或许善于理Q善于领会老板意图Q善于部门协调等{。因此务必培养自己多斚w的能力,包括理Q亲和力Q察a观色能力Q攻兌力等Q要成ؓl合素质的高手,则前途无量,否则只能w在角落看示波器Q技术以外的技能才是更重要的本事!Q从古到今,国日本Q一律如此! [4]多交C会三教九流的朋友!不要只和工程师交往Q认为有共同语言Q其实更重要的是和其他类人物交往Q如果你希望有朝一日当老板或高层管理,那么你整日面对的是q些人。了解他们的l历Q思维习惯Q爱好,学习他们处理问题的模式,了解C会各个角落的现象和问题Q这是以后发展的巨大的本钱?br /> [6]抓住时机向技术管理或市场销售方面的转变Q要x前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大Q以前搞技术也没有白搞Q以后还用得着。搞理可以培养自己的领D力,搞销售可以培养自q市场概念和思维Q同时ؓ自己以后发展U篏庞大的h脉!应该说这才是前途的真正支柱Q?br /> [7]逐渐克服自己的心里弱点和性格~陷Q多疑,敏感Q天真(贬义Qƈ不可爱)Q犹豫不冻I胆怯,多虑Q脸皮太薄,心不够黑Q教条式思维。。。这些工E师普遍存在的性格q必须改变Q很隑Q只在床上想一惛_然不可能Q去帮朋友守一个月地摊Q包准有效果Q去实践Q而不要只惻I不克服这些缺点,一切不可能Q甚臌目l理都当不好--管你可能技术不错! [8]工作的同时要Z后做准备Q徏立自q工作环境Q及早ؓ自己配置一个工作环境,装备电脑Q示波器Q可以买个二手的Q,仿真器,~程器等Q业余可以接ҎQ一斚w接触市场Q培d场感觉,同时也积累资金,更重要的是准备自q产品Q咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品Q拿L产品Q就可技术{让或与h合作搞企业!先把东西准备好,{待ZQ否则,有了Z也抓不住Q?br /> [9]要学会善于推销自己Q不仅要能干Q还要能_能写Q善于利用一切机会推销自己Q树立自q品牌形象Q很必要Q要创造条件让别h了解自己Q不然老板怎么知道你能qԌ外面的投资h怎么怿你?提早把自己推销出去Q机会自然会来找你!搞个个h主页是个好注意!Q特别是培养自己在行业的名气Q有了名气,高薪Z自不在话下,更重要的是有合作的机?..... [10]该出手时便出手!永远不可能有100%把握Q!Q条件差不多p大胆dQ去闯出自己的事业,不要犹UQ不要彷徨,q了不一定成功,但至ؓ下一ơ冲ȝ累了l验Q不q永q没出息Q而且要干成必然要l历p|。不l历风雨Q怎么见彩虹,没有随随便便成功Q?img src ="http://www.shnenglu.com/geforcex/aggbug/5266.html" width = "1" height = "1" /> ]]> 用socket~写C/Sl构E序的流E图 http://www.shnenglu.com/geforcex/archive/2006/03/23/4506.htmlhalCode halCode Thu, 23 Mar 2006 13:11:00 GMT http://www.shnenglu.com/geforcex/archive/2006/03/23/4506.html http://www.shnenglu.com/geforcex/comments/4506.html http://www.shnenglu.com/geforcex/archive/2006/03/23/4506.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/4506.html http://www.shnenglu.com/geforcex/services/trackbacks/4506.html 借用别h的流E图提醒自己~程的步?br /> 1.面向q接的套接字的系l调用时序图 无连接协议的套接字调用时序图
面向q接的应用程序流E图
]]>谈恋?大学??/title> http://www.shnenglu.com/geforcex/archive/2006/03/21/4402.htmlhalCode halCode Tue, 21 Mar 2006 02:34:00 GMT http://www.shnenglu.com/geforcex/archive/2006/03/21/4402.html http://www.shnenglu.com/geforcex/comments/4402.html http://www.shnenglu.com/geforcex/archive/2006/03/21/4402.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/4402.html http://www.shnenglu.com/geforcex/services/trackbacks/4402.html ?吃饭+睡觉 所?大学??谈恋?br />以上推出 大学?谈恋??br />?大学生不谈恋q都是猪? 同理得出 猪只要谈恋爱可以变成大学生 ]]> 李安获奖感言Q?/title> http://www.shnenglu.com/geforcex/archive/2006/03/06/3826.htmlhalCode halCode Mon, 06 Mar 2006 11:59:00 GMT http://www.shnenglu.com/geforcex/archive/2006/03/06/3826.html http://www.shnenglu.com/geforcex/comments/3826.html http://www.shnenglu.com/geforcex/archive/2006/03/06/3826.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/3826.html http://www.shnenglu.com/geforcex/services/trackbacks/3826.html “首先要感谢很多在场和不在场的hQ像制作人Ann Li,~剧DianaQJack~~我觉得《断背山》是属于我李安一个h的,如果被其他h拍了Q我会很生气!q部电媄既不是关于同性恋Q女人,爱情Q而是q本n?
谢谢大家的支持,谢谢我的d和儿子,我爱你们Q我永q和你们同在。虽然在期间我的父亲不幸q世Q但是要感谢我家中的妈妈Q还有中国台湾,香港和内地的同胞们。最后,谢谢大家的关心!?BR> 看到q段话时Q我十分感动Q尤其是“但是要感谢我家中的妈妈Q还有中国台湾,香港和内地的同胞们。”体C一U难得的亲情Q而且在拿到国际电׃最高荣誉的奖项Ӟ不忘记自己是名中国hQ不忘记把台湾说成“中国台䏀?BR> 然而我注意到这句话的表q有Ҏ怪的Q是不是他自q原话呢?我最不愿意怀疑的是“中国台䏀几个字。于是我查看了sohuq段新闻下网友的评论Q发现原文是q样的:?FONT color=#333333>And finally, to my mother and family, and everybody in Taiwan, Hong Kong and China. Thank you. ”,他说的是“台湾、香港和中国”。。。。?BR> 管他是所有华人的骄傲Q尽也总q没有太在意他的表述Q但是。。我多少q是有些失望的。。。?/P> ]]> SetWindowPos http://www.shnenglu.com/geforcex/archive/2006/03/01/3605.htmlhalCode halCode Wed, 01 Mar 2006 09:30:00 GMT http://www.shnenglu.com/geforcex/archive/2006/03/01/3605.html http://www.shnenglu.com/geforcex/comments/3605.html http://www.shnenglu.com/geforcex/archive/2006/03/01/3605.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/3605.html http://www.shnenglu.com/geforcex/services/trackbacks/3605.html
BOOL SetWindowPos( const CWnd * pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
Parameters
pWndInsertAfter
Identifies the CWnd object that will precede this CWnd object in the Z-order. This parameter can be a pointer to a CWnd or a Pointer to one of the following values:
wndBottom Places the window at the bottom of the Z-order. If this CWnd is a topmost window, the window loses its topmost status; the system places the window at the bottom of all other windows.
wndTop Places the window at the top of the Z-order.
wndTopMost Places the window above all nontopmost windows. The window maintains its topmost position even when it is deactivated.
wndNoTopMost Repositions the window to the top of all nontopmost windows (that is, behind all topmost windows). This flag has no effect if the window is already a nontopmost window.
nFlags
Specifies sizing and positioning options. This parameter can be a combination of the following: 常用的是SWP_SHOWWINDOW 注意Q?BR> q里的坐标参数用的是Client坐标Q对于子H口用的是其父窗口的坐标pR然而对于用DoModal()弹出的窗口,如果在资源属性里没有选择Child属性的话,它的父窗口是DeskTopQ而不是调用DoModal()的窗口?BR> ]]>MoveWindow http://www.shnenglu.com/geforcex/archive/2006/02/28/3574.htmlhalCode halCode Tue, 28 Feb 2006 07:44:00 GMT http://www.shnenglu.com/geforcex/archive/2006/02/28/3574.html http://www.shnenglu.com/geforcex/comments/3574.html http://www.shnenglu.com/geforcex/archive/2006/02/28/3574.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/3574.html http://www.shnenglu.com/geforcex/services/trackbacks/3574.html 刚做的那个Y件界面很重要Q就象是把自己做的一个个控g|上MPq要按照实际q行效果来不断调整位|,很麻烦。当时用MoveWindow()q个函数来控制对话框的大和位置Q不了解参数情况Q在|上查了Q记得好象放在这里备忘,那时q觉得blog真是方便。结果现在又要用赯个函数却又找不到了!不知道是不是攑֜q个blog里了。看来blog多了q不方便了。不q不要误会,那些都是以前扑ֈq个blog之前暂时用的Q都不太满意。最后觉得还是这里好QhohoQ方ѝ晕Q我来写q篇日志是干吗的Q这么扯到这么远了。。。不说了Q还是把MoveWindow()再脓一下吧。?/P>
BOOL MoveWindow ( HWND hWnd, // Handle to the window int X, // Specifies the new position of the left side of the window. int Y, // Specifies the new position of the top of the window. int nWidth, int nHeight, BOOL bRepaint ); q个?API函数Q如果在MFC中用CWnd::MoveWindow则不需要第一个参数句柄hWndQ其他相同?img src ="http://www.shnenglu.com/geforcex/aggbug/3574.html" width = "1" height = "1" /> ]]> 一句名a http://www.shnenglu.com/geforcex/archive/2005/12/29/2235.htmlhalCode halCode Thu, 29 Dec 2005 06:17:00 GMT http://www.shnenglu.com/geforcex/archive/2005/12/29/2235.html http://www.shnenglu.com/geforcex/comments/2235.html http://www.shnenglu.com/geforcex/archive/2005/12/29/2235.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/2235.html http://www.shnenglu.com/geforcex/services/trackbacks/2235.html ]]>一个关于指针的问题 http://www.shnenglu.com/geforcex/archive/2005/12/21/1936.htmlhalCode halCode Wed, 21 Dec 2005 02:55:00 GMT http://www.shnenglu.com/geforcex/archive/2005/12/21/1936.html http://www.shnenglu.com/geforcex/comments/1936.html http://www.shnenglu.com/geforcex/archive/2005/12/21/1936.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/1936.html http://www.shnenglu.com/geforcex/services/trackbacks/1936.html
char * pStr; char ch; char str[] = " Hello " ; ch = str[ 1 ]; * pStr = str[ 1 ]; printf( " ch = %c\n " , ch); printf( " *pStr = %c " , * pStr); 此时打印ch值的时候能正确输出Q但是打印pStr[0]的时候就出问题了Q跟t发现是pStr[0] = str[1];q句出现问题?BR> 原来Qchar *pStr; 只定义了一?字节的指针变量,而这个变量里面的内容是将要指向一个charcd变量的,但是此时pStr只是个“野指针”,q没有指向一个charcd的内存单元,所以,当用*pStr来访问这个元素时Q系l根本不知道该访问何处的I间Q因此,在用pStr前,必须让它指向一个具体的I间?BR> ׃面可以将相关语句改ؓ
char * pStr; char ch; char str[] = " Hello " ; pStr = & ch; // pStr指向ch、获得初始化 pStr = & str[ 1 ]; // pStr指向str[1]地址、获得初始化 ch = str[ 1 ]; * pStr = str[ 1 ]; printf( " ch = %c\n " , ch); printf( " *pStr = %c " , * pStr); 也就是说Q要先给指针一个地址值初始化它,然后才能?讉K它指向的内容?BR> ◎另外,在子函数中用malloc()/new()分配的内存空间不会因子函数的q回而消?/FONT>Q函数只会清理调子函数里定义的变量的I间Q如Q?
char * func() { char * p; p = ( char * )malloc( sizeof ( char )); return p; } // q回后,p所在空间被释放Q但是p所指空间还存在 所以,可以用p1=func();来获得在func()中分配的I间?BR> 此中Ҏ可以用来解决“指针的指针”用不方便的问题。步骤分2步:1、把传入的指针的指针参数LQ?、把函数的返回Dl要改变的对象的指针Q?
void GetMemory2( char ** p, int num) { * p = ( char * )malloc( sizeof ( char ) * num); } void Test2( void ) { char * str = NULL; GetMemory2( & str, 100 ); // 注意参数?nbsp;&strQ而不是str strcpy(str, " hello " ); cout << str << endl; free(str); } /**/ ////// 下面是用传递动态内存的Ҏ实现 char * GetMemory3( int num) { char * p = ( char * )malloc( sizeof ( char ) * num); return p; } void Test3( void ) { char * str = NULL; str = GetMemory3( 100 ); strcpy(str, " hello " ); cout << str << endl; free(str); } 因ؓ此时用malloc/new分配的内存空间是堆里面的Q函数返回时不会回收Q而如果在子函C用char p[]="asdfgewq";则p是在栈中定义的(先分配p的空_然后讲字W串拯q去Q跟char *p="asdfasdf"分配在全局静态内存中不一PQ所以会被系l收回?img src ="http://www.shnenglu.com/geforcex/aggbug/1936.html" width = "1" height = "1" /> ]]> 数组和指针的比较 http://www.shnenglu.com/geforcex/archive/2005/12/18/1863.htmlhalCode halCode Sun, 18 Dec 2005 13:40:00 GMT http://www.shnenglu.com/geforcex/archive/2005/12/18/1863.html http://www.shnenglu.com/geforcex/comments/1863.html http://www.shnenglu.com/geforcex/archive/2005/12/18/1863.html#Feedback 0 http://www.shnenglu.com/geforcex/comments/commentRss/1863.html http://www.shnenglu.com/geforcex/services/trackbacks/1863.html 而指针变量只需要指定类型,pȝ只ؓ该指针变量分?字节Q?2位机Q内存,而不会ؓ该变量所指内容分配内存?BR> 2。指针变量是有存储空间的Q而数l名仅仅是一个标P没有实际存储I间Q单单一个数l名只能表C数组的第1个元素的地址。int a[10]; 规定&aq?amp;a[0]或者a . 3。例?char str[]= "hello world"和char *p = "hello world"中,数组str是先分配l他元素个数个内存,然后后面的字符串复制给q个I间Q注意,此时应该考虑\0字符Q;而p的徏立过E是先在静态存储区建立常字W串"hello world\0"Q然后将p指向q个常字W串。所以数lstr中元素的内容可以通过重新赋值改变,而p指向的内容不能改变?img src ="http://www.shnenglu.com/geforcex/aggbug/1863.html" width = "1" height = "1" /> ]]>
þۺɫˮ99ž |
ŷþۺ |
ƷþþþþԻ |
ȾþùþƷ |
av˾þۺɫ |
þùۺϾƷ |
91˾þþƷ |
þþþһëþþ |
þþƷþý
|
ҹƷþþþ |
þùɫAVѹۿ |
ij뾫Ʒþþò |
þùɫAVѹۿ |
þþþþ |
þAV |
ۺϾþһ |
þ99Ʒ99þ |
Ʒþþ21p |
˾þþƷ |
ŷһþ |
þþþùƷ |
91ɫۺϾþѷ |
þþþƷ |
þֹƷۺ
|
ƷۺϾþõһҳ |
þþƷҹҹҹҹҹþ |
ŷպƷþþѹۿ |
Ʒ˾þþþӰԺ |
97þþƷһ |
þþAVɫۺ
|
þerƷѹۿ2 |
㽶þۺӰ |
ٸþþþþñŪ߳
|
þ99ȺݺɫƷһ |
þþƷˮavۺ |
Ʒ˾þô߽ɫҳ |
ŷ˾þۺ |
þþƷ˵ |
þþƷ |
þþþþϸ |
պŷۺϾþ |