高手看C程序指標,高手看C程式指標

時間 2022-12-05 16:55:42

1樓:不知詳解

哦 這說明你的書的作者其實並不了解c語言。

c語言標準並未確定函式呼叫引數計算時的順序。

你作者可能認為ptr++,應該是先返回ptr再自增。同時函式呼叫從左往右計算。

函式是從左往右入棧,但不一定是從左往右計算。這和c c++標準有關,也就是和編譯器實現有關。

所以printf("%d,%d\n",*ptr,*ptr++);

作者的想法可能是

從左向右

"%d,%d\n" 第乙個引數

*ptr 第二個引數arr+1

*ptr++ 第三個引數arr+1

所以兩個引數都是arr+1 arr+1的位址。

恰恰相反的是你的編譯器是從右往左計算的。

*ptr++ 第三個引數 arr+1

*ptr 第二個引數已經遞增arr+2

"%d,%d\n"第乙個引數

也就是你的printf("%d,%d\n",arr+2,arr+1).

所以出現了8,7。

這種程式在專業上是會被批鬥的。盡量避免縮寫很多行**。因為有些特殊作用是我們所不了解的。

標準的函式呼叫內不應該使用自增。

同樣的**如果你換乙個編譯器比如,devc++ 或者vc++結果不一樣,這就是不符合c/c++標準的後果,這種bug很難察覺。

2樓:匿名使用者

當然不同的編譯器的可能在運算上會有差異,

你的編譯器是從右往左計算的。

*ptr++ 第三個引數 arr+1

*ptr 第二個引數已經遞增arr+2"%d,%d\n"第乙個引數

也就是你的printf("%d,%d\n",arr+2,arr+1).

所以出現了8,7。

請高手幫忙看,請高手幫忙看八字。

怎麼說呢。28歲是你人生的轉折點,沒過好那年你的人生過的不算完美的,或許28歲那年會結婚。去東方好過去東北。你一生多病,要注意保護身體 性別 女 公曆 1991年9月2日16時 坤造 辛未 丙申 乙亥 甲申 2歲運 大運 丁酉 戊戌 己亥 庚子 辛丑 壬寅 性格分析 具有雙重性格.為人溫柔,敏感,常...

求高手幫忙看電腦配,求高手幫忙看電腦配

配置好低,更換的話效果也不會太好呢 更換cpu和顯示卡吧 cpu因為是775的,可以選擇奔騰e系列的,價位不會太高顯示卡,可以用8600或者9600的二手顯示卡不過個人建議購買新主機吧 你的電腦變慢主要原因不是硬體老化,而是軟體設計更新太快,你的硬體已經不支援最新的軟體基礎運算。本來新的處理器4次運...

c語言指標的問題,求高手,C語言中,關於指標傳遞的乙個問題,求高手解?

char pformat hello int ptemp int pformat pformat,得到的是pformat的變數記憶體位址,其結果型別為char 指向指標變數的指標,其實也就是乙個記憶體位址,可以用整型指標變數來儲存。int ptemp,這裡的ptemp就是整型指標變數,儲存 pfor...

高手進來看一看,高手進來看一看

看不出來。一張圖能說明什麼。這麼在呼這個。自己去問。高手進來看一看!她對你的感覺很淡。所以你必須更好的表現出你的特別和優點。要更關心她才行!勝率40 一成也沒有,天底下那麼多女人為啥非挖別人牆角,冷靜冷靜,冷靜不下來,就繼續挖,挖到頭來她不理你了你就明白了 繼續努力有10成勝算,但得到人得不到心,好...

關於c 指標的問題請高手賜教

應當明確概念 定義陣列是開設了乙個指標和乙個資料區,比如 int a 6 就是開設了乙個資料區,同時編譯器記住a代表這個資料區的起始位置,換句話說a指向這個陣列首位址,相當於指標,以後你程式中引用a時,編譯器自動替換成這個位址。你開設了乙個指標,內容等於這個首位址,由於aptr指向的資料單元與a相同...