[問題] 新手發問傳值問題

看板C_and_CPP (C/C++)作者 (亂入)時間15年前 (2011/01/07 19:28), 編輯推噓0(0014)
留言14則, 3人參與, 最新討論串1/1
今天我先做了一個RAND陣列*a 然後因為作業要我們分很多的SORT去執行 我想要保持同一個*a int main(){ int *a=new int[1000]; ... sort(a); } void sort(*a){ ... } 這樣的寫法不是CALL BY Value嗎 可是*a的值在第一次SORT完之後就排列好了 不知道是哪裡觀念有問題 請賜教 -- 孤單很好, 你好厲害唷 怎麼變的啊? 因為事實上也沒有人那麼在乎你。 鏘啷! 是什麼啊? ○ ﹨○∕ ○> △﹨ φkcetair ︿■ ╯︳ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.145.45

01/07 19:32, , 1F
輸入是什麼? 輸出是什麼?
01/07 19:32, 1F

01/07 19:36, , 2F
輸入A陣列 不用輸出純粹算時間
01/07 19:36, 2F

01/07 19:37, , 3F
可是在MAIN裡面的A陣列透過一次FUNCTION以後就排好了
01/07 19:37, 3F

01/07 19:40, , 4F
void sort(int *a) ← 這是在宣告 a 不是 dereference
01/07 19:40, 4F

01/07 19:41, , 5F
sort(a); 傳入的時候, 因為要排序的元素是 int 變數,
01/07 19:41, 5F

01/07 19:41, , 6F
a 內存記憶體位置, 可以透過它修改變數值
01/07 19:41, 6F

01/07 19:44, , 7F
那應該怎麼修改呢@@
01/07 19:44, 7F

01/07 19:45, , 8F
你是程式碼有問題嗎? = ="
01/07 19:45, 8F

01/07 19:50, , 9F
01/07 19:50, 9F

01/07 19:51, , 10F
我很好奇有沒有不做copy的寫法...??
01/07 19:51, 10F
感謝樓上大大 我看的懂 可是我不能用 因為我要測試1次排序跟100次排序的時間 我寫的是這樣 c_start=clock(); sort(a); c_end=clock(); c_start=clock(); for(int i=0;i<100;i++){ sort(a); } c_end=clock(); 如果將COPY時間也加入的話就不準了~"~ ※ 編輯: ernieyang09 來自: 112.104.145.45 (01/07 19:56)

01/07 20:01, , 11F
你不會在 sort前自己打亂, 整個測一遍, 再來單獨測打
01/07 20:01, 11F

01/07 20:01, , 12F
亂需要的時間, 兩個相減不就好了
01/07 20:01, 12F

01/07 20:09, , 13F
用扣的還可以幫你把迴圈計數跟函式呼叫扣掉, 還比較準
01/07 20:09, 13F

01/07 22:07, , 14F
或者調個順序就好了:http://nopaste.csie.org/2532c
01/07 22:07, 14F
文章代碼(AID): #1D9lZkVP (C_and_CPP)
文章代碼(AID): #1D9lZkVP (C_and_CPP)