電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
問題

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
Okerofujin
略有貢獻的成員


註冊時間: 2007-10-19
文章: 71

-40.53 果凍幣

發表發表於: 2008-5-18, PM 4:11 星期日    文章主題: 問題 引言回覆

問題

Okerofujin 在 2018-7-5, PM 11:44 星期四 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
satanupup
喜歡上這裡的冒險者


註冊時間: 2007-05-29
文章: 80

68.10 果凍幣

發表發表於: 2008-5-18, PM 11:30 星期日    文章主題: 引言回覆

http://elearning.stut.edu.tw/electric/EE/TEACH/C++/C++6.files/frame.htm
回頂端
檢視會員個人資料 發送私人訊息
Okerofujin
略有貢獻的成員


註冊時間: 2007-10-19
文章: 71

-40.53 果凍幣

發表發表於: 2008-5-19, AM 2:14 星期一    文章主題: 引言回覆

問題

Okerofujin 在 2018-7-5, PM 11:44 星期四 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
mirror
散播福音的祭司


註冊時間: 2007-07-27
文章: 174

828.60 果凍幣

發表發表於: 2008-5-19, AM 5:35 星期一    文章主題: 引言回覆

HPkon 寫到:
satanupup 寫到:
http://elearning.stut.edu.tw/electric/EE/TEACH/C++/C++6.files/frame.htm

呃...
上面這是在介紹指標...沒錯吧???
然後最後一章是在說『動態陣列』...沒錯吧???
可能是在下的問題沒說清楚吧!!!
說明白一點好了!!!

假如定義一個2維陣列aa[2][3]={{1,2,3},{4,5,6}}
請問如何用『指標』搭配『迴圈』印出aa陣列裡的值
在下想知道的是各位大大的寫法!!!


代碼:

   int a[2][3] = {{1,2,3},{4,5,6}};
    int *p;
   char s[20];

   cout << "Address               Value" << endl;

   for(int i=0;i<2;i++)
   {
      for(int j=0;j<3;j++)
      {
         p = &a[i][j];

         sprintf(s,"a[%d][%d]= 0x",i,j);
         
         cout << s << p << "   Value= " << *p << endl;
      }
   }
回頂端
檢視會員個人資料 發送私人訊息
babu61509
散播福音的祭司


註冊時間: 2007-08-26
文章: 142

681.01 果凍幣

發表發表於: 2008-5-19, AM 9:51 星期一    文章主題: 引言回覆

另一種寫法,不過比較建議使用樓上的XD

因為比較看的懂. v.
偵錯也比較好偵.

但是想學好c++還是要看的懂指標的運算用法...

代碼:

   int a[2][3] = {{1,2,3},{4,5,6}};
   int lo = sizeof(a)/sizeof(int);
   int *p = *a;

   for(int i=0;i<lo;i++)
   {
      cout << p << " = " << *p << endl;
      p++;
   }

_________________
已經畢業了!!
回頂端
檢視會員個人資料 發送私人訊息
Okerofujin
略有貢獻的成員


註冊時間: 2007-10-19
文章: 71

-40.53 果凍幣

發表發表於: 2008-5-19, PM 7:58 星期一    文章主題: 引言回覆

問題

Okerofujin 在 2018-7-5, PM 11:45 星期四 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
babu61509
散播福音的祭司


註冊時間: 2007-08-26
文章: 142

681.01 果凍幣

發表發表於: 2008-5-19, PM 11:52 星期一    文章主題: 引言回覆

代碼:

int (*p)[3]=a;

0.0
我第一次看到有人宣告指標陣列耶XDD (原來可以這樣用阿0口0)

更神奇的是...指標陣列的指向...
代碼:

p[0] --- > a[0] = 1
           a[1] = 2
           a[2] = 3
p[1] --- > a[3] = 4
           a[4] = 5
           a[5] = 6
p[2] --- > ????????

好詭異的東西XDD

_________________
已經畢業了!!
回頂端
檢視會員個人資料 發送私人訊息
Okerofujin
略有貢獻的成員


註冊時間: 2007-10-19
文章: 71

-40.53 果凍幣

發表發表於: 2008-5-20, AM 12:38 星期二    文章主題: 引言回覆

問題

Okerofujin 在 2018-7-5, PM 11:45 星期四 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
mirror
散播福音的祭司


註冊時間: 2007-07-27
文章: 174

828.60 果凍幣

發表發表於: 2008-5-20, AM 1:31 星期二    文章主題: 引言回覆

代碼:

p[0] --- > a[0] = 1
           a[1] = 2
           a[2] = 3
p[1] --- > a[3] = 4
           a[4] = 5
           a[5] = 6
p[2] --- > ????????


指標超出區塊範圍
很明顯的發生未預期的錯誤
回頂端
檢視會員個人資料 發送私人訊息
lsk
喜歡上這裡的冒險者


註冊時間: 2007-06-20
文章: 93

20.59 果凍幣

發表發表於: 2008-5-20, AM 2:07 星期二    文章主題: 引言回覆

HPkon 寫到:
啊~~~
這樣的寫法沒人這樣寫嗎???
我以為這是很普通的寫法耶!!!
代碼:
int (*p)[3]=a;

這是指宣告一個p指標指向一個有3個int元素的a陣列


代碼:
int (*p)[2]=a;

這樣才對。"這是指宣告一個p指標指向一個有3個int元素的a陣列"這句話沒錯,但是a並沒有3個int元素,a[0]和a[1]才有。所以應該是宣告兩個*p來指向a,以避免你的指標指到未知的數值去。不確定的話,可以用你的debugger去看你的變數存到了什麼喔~ (用watch功能,在VS的話可以自己把想看的變數拉到watch視窗裡面看。)
回頂端
檢視會員個人資料 發送私人訊息
Okerofujin
略有貢獻的成員


註冊時間: 2007-10-19
文章: 71

-40.53 果凍幣

發表發表於: 2008-5-20, AM 7:46 星期二    文章主題: 引言回覆

問題

Okerofujin 在 2018-7-5, PM 11:45 星期四 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
lsk
喜歡上這裡的冒險者


註冊時間: 2007-06-20
文章: 93

20.59 果凍幣

發表發表於: 2008-5-20, PM 12:02 星期二    文章主題: 引言回覆

lsk 寫到:
HPkon 寫到:
啊~~~
這樣的寫法沒人這樣寫嗎???
我以為這是很普通的寫法耶!!!
代碼:
int (*p)[3]=a;

這是指宣告一個p指標指向一個有3個int元素的a陣列


代碼:
int (*p)[2]=a;

這樣才對。"這是指宣告一個p指標指向一個有3個int元素的a陣列"這句話沒錯,但是a並沒有3個int元素,a[0]和a[1]才有。所以應該是宣告兩個*p來指向a,以避免你的指標指到未知的數值去。不確定的話,可以用你的debugger去看你的變數存到了什麼喔~ (用watch功能,在VS的話可以自己把想看的變數拉到watch視窗裡面看。)


對不起!! 是我錯了。上班時回文沒有仔細查證,其實你說的對 Razz 我那個宣告方式的確會有這個錯誤:error C2440: 'initializing' : cannot convert from 'int [2][3]' to 'int (*)[2]' (我家裡的compiler是VC2008 Express,明天再去公司試一次)

再次道歉~~
回頂端
檢視會員個人資料 發送私人訊息
happylin
略有貢獻的成員


註冊時間: 2007-07-26
文章: 70

127.34 果凍幣

發表發表於: 2008-5-20, PM 7:55 星期二    文章主題: 引言回覆

int (*p)[3];

這個為宣告一個指標. 他可以指向 大小為3 的一維int 陣列..
寫的真是文粥粥

for example
代碼:

typedef int A[3];   // 訂義一個行別. 為int 陣列. 大小是3

int main()
{
   A x[2]={{1,2,3},{2,4,6}};   // A 陣列 大小為2 (其就是 int [2][3] )
   int (*p)[3]=x;    // 宣告一個指標p. 指向x , p 只能指向大小為3 的int 陣列
       
          int i,j;
   for( i = 0 ; i < 2; ++i)
   {
      for( j = 0 ; j < 3 ; ++j)
      {
         std::cout << p[i][j] << " ";
      }
      std::cout << std::endl;
   }
                   
}
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作