c語言程式執行指標的問題

#include<stdio.h>

void silly(int *a,int b)

{

*a=b;

}

int main()

{

int x[]={10,12,5,8,2,15,14};

int i;

silly(&x[0],5);

silly(&x[2],x[5]);

silly(&x[5],x[4]);

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

printf("%3d",x[i]);

// system("pause");

}

詳細過程和觀念,謝謝

已更新項目:

指標不太懂

2 個已更新項目:

我一定要懂==

3 個解答

評分
  • MikeHK
    Lv 5
    7 年前
    最佳解答

    指標要三言耳語講得清楚還真不容易,

    建議直接跳過去學 C# or JavaScript 最近挺紅的 像寫 APP, Web 遊戲...越來越多人不學指標了 !

    基本概念這樣: 不懂的話再多聽幾次應該可以, 如果再不行有可能就不適合學這了!

    1. int a; => a 就當一個變數(你知道的).

    2. int *b; => b 是一個位置, 這個位置還沒有說在哪裡之前, 你不能放東西.

    *b 就是那個位置的值.

    3. &a => 這整個表示 a 的所在位置,

    array 沒問題吧! 上面的.

    silly(int *a,int b) => 傳入 a 的位置, 跟 b 的值.

    *a=b => 表示 a那個位置讓他存放 b 的值.

    silly(&x[0],5); => 呼叫 silly 這個函式, 裡面傳入 x[0] 這個位置, 跟 5 這個值.

    就這些, 會了後還可以用到 class/structure/function pointer...有夠囉嗦, 跳過吧!

  • 匿名使用者
    7 年前

    最近也沒什麼遊戲好玩,推薦你玩玩休閒類的網頁遊戲吧!

    可以去好玩遊戲天堂看看喔!http://www.webgame520.com/

  • 其威
    Lv 7
    7 年前

    沒什麼觀念阿...

    過程不就是

    x[0] = 5、

    x[2] = 15 (x[5])、

    x[5] = 2 (x4)

    嗎?

    最後印出 5 12 15 8 2 2 14

    2013-03-30 19:26:37 補充:

    建議直接跳過去學 C# or JavaScript...

    的確現在很多程式語言不直接操作指標,但是指標的觀念還是存在。

    例如你在 C# 或 Java / JavaScript 中,需要某個東西還是要 new / delete。

    它只是把指標變成更高階的形式,並不是不存在。

    通常,越高階的程式設計師設計越低階(貼近硬體)的東西、越低階的程式設計師設計越高階(貼近使用者)的東西。

    當然並不是說寫高階程式的就沒有神人在,只是...

    一個東西,別人不會、你會,那你就比別人有競爭力。

還有問題?馬上發問,尋求解答。