c語言編程指針詳解 c語言指針編程題解題思路?
c語言指針編程題解題思路?指針就是變量或函數(shù)地址,可以直接或間接尋址,可以節(jié)省內(nèi)存占用。c語言指針怎么用?1.指針的使用使得不同區(qū)域的代碼可以輕易的共享內(nèi)存數(shù)據(jù),這樣可以使程序更為快速高效;2.C語言
c語言指針編程題解題思路?
指針就是變量或函數(shù)地址,可以直接或間接尋址,可以節(jié)省內(nèi)存占用。
c語言指針怎么用?
1.指針的使用使得不同區(qū)域的代碼可以輕易的共享內(nèi)存數(shù)據(jù),這樣可以使程序更為快速高效;
2.C語言中一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)往往需要使用指針來構(gòu)建,如鏈表、二叉樹等;
3.C語言是傳值調(diào)用,而有些操作傳值調(diào)用是無法完成的,如通過被調(diào)函數(shù)修改調(diào)用函數(shù)的對(duì)象,但是這種操作可以由指針來完成,而且并不違背傳值調(diào)用。
(C語言)地址為什么要變成指針才能賦值給指針變量呢?
指針即地址。所以您的問題問的不對(duì)。
我所理解的應(yīng)該是想問為什么變量需要取地址以后再賦值給指針變量,即int a,*p; p
先講個(gè)小概念,數(shù)字23,在“今年我23歲了”這句話中23的語義是年齡;在“我的偶像身穿23號(hào)籃球服”這句話中23是籃球服的編號(hào)。也就是說數(shù)字23在不同的語句環(huán)境中語義不一樣。
回歸正題,int a,*p; p 在這里我們定義了兩個(gè)整形變量,在內(nèi)存中他們都存放的是二進(jìn)制編碼,但是他們的語義是不一樣的,一個(gè)用來存放整數(shù),一個(gè)卻是用來存放指向一個(gè)整形變量的指針(指針即地址)。簡(jiǎn)單說這兩個(gè)變量可不一樣,一個(gè)是普通變量存放常用的數(shù)值,一個(gè)是特殊變量(所以還要加個(gè)*號(hào)區(qū)分一下)存放另外一個(gè)變量的物理地址。
這么講您能明白嘛?不明白的話可以再邀請(qǐng)我回答這個(gè)問題。
C語言中指針的*號(hào)和乘法的*號(hào),怎么更好的區(qū)分?
說起C語言的這個(gè)指針的星號(hào),我覺得有時(shí)候真的很容易引起人的誤會(huì)啊。當(dāng)初老外在發(fā)明設(shè)計(jì)C語言的時(shí)候,怎么沒有想到這個(gè)星號(hào)會(huì)與乘法符號(hào)相互混淆呢?不過既然C語言已經(jīng)發(fā)明了這么多年了,全世界使用C語言也很嗨嘛,再去修改這個(gè)規(guī)定也不現(xiàn)實(shí),那么我們就從自身出發(fā),看看這個(gè)星號(hào)怎么去區(qū)別指針和乘法吧。
其實(shí)星號(hào)什么時(shí)候是用在指針上,什么時(shí)候用到乘法上,還是比較容易區(qū)分的。
對(duì)于指針而言,星號(hào)一般出現(xiàn)在兩個(gè)場(chǎng)合,一個(gè)是指針定義的場(chǎng)合,一個(gè)是指針使用的場(chǎng)合。在定義指針的場(chǎng)合,就是在定義指針時(shí)前面加個(gè)星號(hào)而已,比如:
int *p;
這個(gè)就死記硬背吧,指針定義時(shí)前面的星號(hào)就是告訴編譯器變量p就是個(gè)指針,除此之外沒有別的意思了。
在指針使用的場(chǎng)合前面會(huì)加個(gè)星號(hào)。注意不是定義指針哦,是使用指針,比如:
*p 1;
上述這個(gè)語句的意思就是使用指針,怎么使用?就是把指針指向的值加上1.這個(gè)也死記硬背吧,使用指針時(shí)前面的星號(hào)就是告訴編譯器我要用指針了,除此之外也沒有別的意思了。
那么在做乘法的時(shí)候,星號(hào)就是一個(gè)運(yùn)算法則。如果在乘法中藥用到指針的話,可能會(huì)出現(xiàn)如下寫法:
1 * *p
意思就是1與指針指向的值相乘。此時(shí)怎么區(qū)分?就是最貼近指針變量p的那個(gè)星號(hào)是用于指針的,也就是指針定義時(shí)使用。
如果C語言能重新發(fā)明一次,也許發(fā)明者會(huì)用個(gè)#、$或者其他的什么字符來代替*吧,因?yàn)楸硎局羔樀?和乘法的*確實(shí)容易混淆。
我認(rèn)為你說的是在閱讀別人代碼時(shí),會(huì)不會(huì)出現(xiàn)分不清 指針* 還是 乘法* 操作符號(hào)。
如果我理解的沒有錯(cuò)的話,這個(gè)問題應(yīng)該不用擔(dān)心,因?yàn)榘凑眨谜Z法規(guī)則,乘法操作符號(hào) * 兩邊類型相同,那么你就看操作符前后類型了!