int arr6,7,8,9,10int ptr arrptr123 printfd,dptrptr求答案和原理

時間 2022-03-08 14:55:14

1樓:

在vc++ 2005下測試,結果為:

8,8printf("%d,%d",*ptr,*(++ptr)); 這個語句有二義性,在不同編譯系統下,結果可能不同。沒必要究結。

2樓:小空空

前幾句都很簡單,只說printf那一步

在printf前,*ptr = 7

執行printf:在vc中,printf執行的順序是自右向左,所以先執行*(++ptr)。。。。。。

所以結果是:8,8

外加一條:printf在不同的編譯環境下運算的順序是不同滴~~~~~所以結果不一樣也正常

3樓:匿名使用者

結果:8,8

int *ptr=arr;

*(ptr++)+=123; //這裡執行後,ptr = arr[1], arr[0] = 129

printf("%d,%d",*ptr,*(++ptr)); //這裡先計算++ptr,ptr =arr[2], 所以相關於

printf("%d,%d",arr[2],arr[2]);

4樓:

答案是:8,9

原理:*ptr=arr,所以ptr=6;

*(ptr++)+=123,先執行 *(ptr++),則 *(ptr++)=arr[0]即6,,此時*ptr=arr[1],然後執行 6+123=129,此時*ptr=arr[2]即8;

*(++ptr)相當於先執行++ptr,則相當於輸出arr[3]即9.

5樓:

答案:8,8

int arr=;

int *ptr=arr;

// arr[0]+=123

*(ptr++)+=123;

// 上一語句中,ptr 已經轉向arr[1]printf("%d,%d",*ptr,*(++ptr));

6樓:洛雨曦

int arr=; //定義陣列包括5個元素int *ptr=arr; //定義指標變數,指向陣列的首位址*(ptr++)+=123; //等價於*(ptr++)=*(ptr++)+123首選計算括號裡的,是後置加,加*是取括號指標所針變數的內容即6,用完之後,ptr指向arr[1],但現在是6+123即129賦給*(ptr++),這時ptr指向的是arr[1],所以arr[1]=129,記住賦完之後ptr又加1,指向的是arr[2]

printf("%d,%d",*ptr,*(++ptr));//而這時輸出ptr就是8,而後邊的是先位址加1再取內容,因些是9

c語言問題,用指標為乙個二維陣列賦值

7樓:fzy範忠雲

ptr=arr;

其實你這樣賦值也是可以的,是沒有問題的。

因為arr是二維陣列的陣列名,它636f707962616964757a686964616f31333264626539(arr)本身就代表這個二維陣列的第0行的位址。

問題關鍵不是出現在這裡,而是在你程式的while迴圈語句中

你這樣寫是不對的,首先ptr指向的是乙個位址,所以ptr+i也是乙個位址,所以這裡就不能用變址運算子"&"了。第二個問題是,i 從0自加到6,這裡面其實有了7個數,明顯超過了arr陣列的長度,這樣是不對的。這個迴圈還有乙個問題就是,這本身就是乙個不正常的迴圈(自己想想為什麼)

下面是我幫你改改的**,希望對你會有幫助。

#include

void main()

8樓:匿名使用者

這個我不太明白,我也是新手,我也遇到過這種情況,我是這樣做內的:

#include

void main()

希望對你有點容幫助

9樓:匿名使用者

可以強行轉抄

換,ptr=(double *)arr,不過你這個程式還有個地方有問題:

改成 while(i!=6 && scanf("%lf", ptr+i))

10樓:樹袋熊劉

for( i=0;i<2;i++)

for(j=0;j<3;j++)

scanf("l%f",a[i][j]);

我也是新手,不知道這樣做對不對

字串陣列交換,為什麼乙個是char[*ptr][10]乙個是char **x,實際引數不一樣?

11樓:gta小雞

char name[6]本質上是char (*name)[6],name是乙個char(*)[6]的陣列指標,指向乙個擁有6個char型元素的陣列;而char **a的a是乙個二級指標,指向乙個char*指標,這兩者型別是不同的,當然不可以互相傳遞。交換字串,使用strcpy函式。

農曆67年12月13亥時男生辰,農曆67年12月13亥時男生辰八字

晚風無人可問津 生日 公曆 1968年 1月 12日 21時0分 生日 農曆 丁未年 十二月十三 亥時 八 字 丁未 癸丑 辛巳 己亥 八字不錯 就是運勢差一點,去年財源不好,且婚姻不順 1973年農曆12月13日亥時出生男命運如何 請不要相信命運之說,只有自己努力,生活才能更美好 古壘 請問老師今...

67年農曆11月20什麼星座,我67年農曆11月20日生的,我是什麼星座

射手座 11月23日 12月21日 你的生日恰恰是陽曆12月21日!我67年農曆11月20日生的,我是什麼星座 張小嗷 你的公曆生日是 1967 12 21 是射手的最後一天 偏向摩羯 所以也叫摩羯射手座 又忘了名 農曆11月20 即陽曆12月21 射手座 又名人馬座 sagittarius 11月...

vivoy67怎麼樣,vivoY67怎麼樣

叫我大麗水手 這款手機還是很好的,有很多優點,比如 外觀漂亮 手感舒適 螢幕大 執行記憶體大 機身記憶體大 螢幕效果好 執行流暢 訊號好 電池容量大 音色音質好等。vivoy67 介紹 2014年8月26日,vivo官方宣佈一款新機型vivo y67,極致hifi,纖薄王者。該機主打k歌功能,將於8...