C語言返回陣列的問題

時間 2022-07-11 12:00:09

1樓:匿名使用者

呼叫函式你還沒理解好。

printf("%s",v); //這裡面v是什麼?是你定義的區域性變數,而這個變數在你呼叫函式的時候產生,而在呼叫結束的時候這個變數就消失了。所以什麼也輸不出來。

這裡你可以把v定義成全域性變數,或者採用其他的函式值傳遞的方法(很多方法,還是找本書看下吧)。

補充:陣列可能要靠指標實現。v[100]裡面陣列名v本身就是個指標變數。你可以定義乙個返回值為指標型別的函式,也可以定義乙個函式引數是指標型的函式。

例如在你的shuzu()外面定義乙個陣列,同時陣列要定義成指標型別的函式:

int *shuzu(char x,char v)

呼叫的時候,這樣寫:shuzu(x, v);

例如printf("%s",shuzu(x, v)); 這裡陣列返回值就是乙個陣列名,也是乙個指標。你試一下。

2樓:匿名使用者

返回陣列時返回陣列的頭指標 你定義函式的時候沒有函式的返回型別

char * shuzu(char x)

main()

3樓:匿名使用者

函式不能返回指向區域性變數的指標,因為函式結束時,區域性變數也會被釋放,那樣的話,返回的指標是個野指標。

4樓:

好像懂你的意思,你想把操作後的陣列全部返回。一般函式只能返回乙個值,要想返回陣列不可能。不過你可以,預先定義乙個陣列,把首位址傳進函式,在函式中進行操作。

預先在主函式中定義此陣列:

char v[100];

然後把你的函式改為shuzu(char v)呼叫時用shuzu(v)即可

c語言怎麼返回字串陣列,C語言中怎麼查詢字串陣列中的某個字元?

風若遠去何人留 c語言返回值不支援返回陣列,不過可以通過返回指標型別,用以替代陣列。在c語言中,陣列大多數時候是可以用指標替代的。不過需要注意的是,不能夠返回在函式內部定義的區域性變數陣列,因為一旦函式退出,區域性變數就會被釋放,導致陣列指標無效。可以返回以下幾種 1 全域性變數,或者全域性變數空間...

c語言陣列宣告問題,C語言中定義陣列時對其全部初始化為1的問題

有初始化的陣列定義可以省略方括號中的陣列大小。例如,下面的 中陣列定義為5個元素 int a 如 char str program 編譯時必須知道陣列的大小。如果陣列大小要根據運 況來確定,可以使用動態陣列 int p int calloc num,sizeof int 一般有四種陣列定義方式,以一...

c語言迴圈問題,禁止用陣列,C語言for迴圈中用gets輸入字元陣列的問題

c語言不能處理變數名。編譯之後變數都被用相應記憶體位址代替。因此,此類問題在c語言中都是用陣列處理。下面的辦法可以分別處理 int a1,a2,a3,a4 int i for i 1 i 5 i 高深一點的說,可以用乙個c的技巧 在程式執行時,會為變數申請記憶體空間,那麼a1,a2,a3,a4是在記...