2015-11-09 37 views
0
#include <stdio.h> 

int main() { 
    char gradesList[5]; 
    gradesList[2] = "X"; 
    printf("%c", gradesList[2]); 
} 

當我嘗試運行此代碼,我得到這些錯誤:或許簡單,但令人困惑的分配錯誤

不兼容的指針整數轉換

分配時將指針整數,未作鑄

+2

「X」(雙引號)是一個指向字符串的指針。 'X'(單引號)是單個字符。 – keithmo

回答

1

你必須分配char而不是pointer to a string literal。使用'代替"

gradesList[2] = 'X'; 


在C字符串文字使用雙qoutes爲代表,即 "。並且 char用單引號表示,即 '

由於您已將gradesList聲明爲char數組。並試圖分配一個字符串文字的指針,你會得到這個錯誤。

1

雙引號內的任何內容都被視爲字符串。

你應該使用:

gradesList[2] = 'X';