亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: C語言指針的一點(diǎn)小疑問 [打印本頁]

作者: 254zhang    時(shí)間: 2019-12-30 11:17
標(biāo)題: C語言指針的一點(diǎn)小疑問
   
1.  
     int b=5;
     int  *a = &b;  

2.
     int b = 5;
    int*    a =&b;

3.

   int b = 5  ,*a;
   a = &b;

這三種寫法有區(qū)別嗎

是不是都是把b的地址賦給指針變量a

如果一樣的話 哪種寫法比較好

作者: 254zhang    時(shí)間: 2019-12-30 11:59
還有一個(gè)問題  
int *a = &b;   (這是把b的地址賦給指針變量a)

和  *a = &b;  (這是把b的地址賦給指針變量a的存儲的數(shù)據(jù))  

為什么含義不一樣呢?  
作者: zsm15431078    時(shí)間: 2019-12-30 15:25
發(fā)表下個(gè)人看法,針對第一個(gè)問題:
1.以上三個(gè)寫法是一樣的。個(gè)人比較傾向于第三種寫法。先定義變量,然后賦值。
2.   int *a = &b;是定義一個(gè)指針變量a,同時(shí)初始化。
*a = &b是一個(gè)賦值語句,所以含義不同。
作者: 艽野塵夢    時(shí)間: 2019-12-30 15:38
三者在運(yùn)行編譯時(shí)的效果是一致的,含義也大致相同
作者: 艽野塵夢    時(shí)間: 2019-12-30 15:41
三者運(yùn)行編譯的效果一樣,1和2只是空格格式不同,3是先定義再賦值,最終效果是一樣的,個(gè)人喜歡第一種,定義和賦值在一起,少打一行,而且可以防止后面忘記賦值
作者: liuyongjun000a    時(shí)間: 2019-12-30 18:09
實(shí)際上你自己全懂了。這個(gè)書寫格式,只有軟件本身認(rèn)可,試了就知了。沒有文章說明中間空格就不是一個(gè)定義詞來的。如*  A,或:=    some;前者就是:*A,空了也是*A,等于后面的空好幾個(gè)也是一個(gè)some.
作者: 啦啦啦123321    時(shí)間: 2019-12-30 21:47
一個(gè)意思吧,第一種更好一點(diǎn)
作者: jizhongbiao    時(shí)間: 2019-12-31 16:15
結(jié)果一樣,第一種和第二種完全一樣。個(gè)人決定第三種寫法比較好。
作者: 1332112623    時(shí)間: 2020-1-1 18:05
都一樣,我覺得第一種好點(diǎn)
作者: w1179benp    時(shí)間: 2020-1-3 08:38
這個(gè)看個(gè)人習(xí)慣,以及代碼作用——是否有他人需要,選個(gè)通俗易懂的就OK
作者: jaken_tony    時(shí)間: 2020-1-3 09:51
三個(gè)寫法都一樣,一般做法是第一種,特別是在一行中定義多個(gè)變量時(shí),簡單明了,能有效區(qū)分哪些是數(shù)據(jù)變量,哪些是指針變量。至于說補(bǔ)充的問題,如果是單獨(dú)一行來寫,前面沒有變量類型限定符 則*a將會被編譯器認(rèn)為是一個(gè)整體,表示a指針指向的int變量,也是常規(guī)的指針用法,但是你這樣寫的話,如果a指針沒有初始化,會導(dǎo)致程序出現(xiàn)無法預(yù)測的問題,即野指針問題。
作者: 御羽    時(shí)間: 2020-1-3 17:21
結(jié)果完全一樣。個(gè)人決定第三種寫法比較好。先定義變量,然后賦值。清晰明了
作者: lllxy    時(shí)間: 2020-1-3 18:51
三種寫法都一樣,都是把b的地址賦給指針變量a,一般是寫作第一種
作者: 還有誰?    時(shí)間: 2020-1-3 19:29
書寫規(guī)范的代碼讓人看了賞心悅目,代碼的可讀性強(qiáng)。書寫規(guī)范的代碼無論對自己對別人都有好處。
作者: Abc_zh    時(shí)間: 2020-1-3 20:24
除了第三種,我不是很贊同這樣的寫法以外,第1 、2 種寫法都可以。這是因?yàn)榈谌N會存在野指針的問題,雖然在你的編譯器當(dāng)中會編譯通過,但是可能會導(dǎo)致出現(xiàn)不可預(yù)測的錯(cuò)誤,畢竟你在定義*a的時(shí)候并沒有初始化給它,但是在內(nèi)存中會劃分了某個(gè)區(qū)域給它,而這個(gè)區(qū)域的話,有可能存放著其他的數(shù)據(jù),可能會導(dǎo)致一系列不可預(yù)測的錯(cuò)誤發(fā)生;蛘吣阍诙x*a時(shí)直接賦值為空,即 int * a = NULL;然后再進(jìn)行下一步操作,如:a = &b;
作者: ddddddd1wu    時(shí)間: 2020-1-3 22:06
則三種寫法是一樣的,但是至于哪種比較好,各有各的道理。個(gè)人建議*號跟隨變量,比如(int *a)并且同時(shí)初始化,以免忘記,造成懸空指針。
作者: 沒耐心    時(shí)間: 2020-1-4 10:42
254zhang 發(fā)表于 2019-12-30 11:59
還有一個(gè)問題  
int *a = &b;   (這是把b的地址賦給指針變量a)

首先,3中實(shí)現(xiàn)的是一樣的,但是第三種不太嚴(yán)謹(jǐn),在定義的同時(shí)沒有初始化,會出現(xiàn)野指針。他們都是實(shí)現(xiàn)了把b的地址放入a中,也就是指針a指向b的地址。第二個(gè)問題,第一個(gè)是定義一個(gè)指針同時(shí)初始化,第二個(gè)是把b的地址的數(shù)值放入a指向的空間中,不是b的值。
作者: 瑜喬    時(shí)間: 2020-1-4 12:17
一樣的,看個(gè)人習(xí)慣,以及行業(yè)習(xí)慣
作者: 流星2019    時(shí)間: 2020-1-4 15:47
指針就是指向地址的意思,在指針運(yùn)算的過程中是在對地址進(jìn)行操作,你明白這個(gè)就清楚了
作者: lsc124    時(shí)間: 2020-1-4 16:27
三種寫法沒有實(shí)際上的區(qū)別,但是我個(gè)人比較喜歡第一種寫法,很多c語言的書上也是第一種寫法




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1