所以,我很難在函式中使用陣列和指標。我想使用函式列印以下字符陣列。我可以使用 for 回圈在函式外列印它們,但是當我將相同的代碼傳遞給函式時,函式回傳 NULLS。我可以對此有所了解嗎?
#include <stdio.h>
void printNames(char arr[], int size);
int main()
{
char *names[4] = {"Bruce", "Clark", "Barry", "Diana"};
//changed a typo
for(int i = 0; i < 4; i )
{
printf("%s ", *(names i));
}
printNames(names, 4);
return 0;
}
void printNames(char arr[], int size)
{
for(int i = 0; i < size; i )
{
printf("%s ", *(arr i));
}
}
uj5u.com熱心網友回復:
您正在傳遞型別為 的變數char *[],即指向char期望函式的指標陣列char *,即指向 char 的指標。另外,內printNames,你傳遞一個char來printf當%s格式說明期望一個char *。您的編譯器應該已經就這兩種情況向您發出警告。
您需要更改 的定義printNames以使引數型別匹配傳入的內容并匹配您想要傳遞給的內容printf。
void printNames(char *arr[], int size);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314968.html
上一篇:在C中獲取堆疊的分段錯誤錯誤
