English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

在C language ,呼叫副函數中,陣列的資料都是用傳址方式傳遞,請問要如何\"直接\"將陣列的值,傳送到函數中,而非\"間接\"在函數中複製該陣列的值。

例如
char a[500];
int b=0;
.............
.............
.............
c(b); // 傳遞變數b的值
d(.......); // 傳遞變數a陣列的值這應該怎樣寫...

2006-08-26 09:29:41 · 7 個解答 · 發問者 ㄚ旺 5 in 電腦與網際網路 程式設計

7 個解答

C 不允許直接傳值,若一定需要用原始值時, 直接宣告成全局變數讓副函數去抓

2006-10-19 21:41:57 · answer #1 · answered by arniwarp a 2 · 0 0

#include

void tran(char *x)
{
printf("%s\n",x);
}

void main()
{
char a[]="abcde";
tran(a);
}

2006-08-28 02:16:41 · answer #2 · answered by 1 · 0 0

是傳陣列中的某一個值,還是你想一次傳整個陣列的值過去呢?

2006-08-27 11:02:52 · answer #3 · answered by Almond 6 · 0 0

實在不懂你要啥!
你要:
A. 等效於傳值:
 a. 它傳的是 copy 版?:主程式自己copy一份傳去。
 b. 副程式不能改原值?(資料安全性):用 const 去修飭。
B. 真實等於傳值:應該是不行。

2006-08-27 01:11:24 · answer #4 · answered by ? 7 · 0 0

你是要傳值傳"整個陣列"?, 那只有自己複製一份囉

2006-08-27 00:18:04 · answer #5 · answered by ? 4 · 0 0

d(a); 是傳址没錯
我想要知道是否能傳值

2006-09-07 21:40:36 補充:
test
printf("aaaaa");

2006-09-07 21:41:26 補充:
printf("aaaaa");

2009-10-17 02:54:12 補充:




1.234567890


2006-08-26 19:37:54 · answer #6 · answered by ㄚ旺 5 · 0 0

不太懂你的意思 @@"
傳址, 請問是以下這樣嗎 ...

d(a);

void d(int *arr)
{
...
}

它不是 copy 一份 a 陣列,而是直接傳原先的 a 陣列列位址給該函數...

2006-08-26 16:26:45 · answer #7 · answered by 榮章 4 · 0 0

fedest.com, questions and answers