当我声明testArray [] = {'1','2','3','4','5'}时,为什么49,50,51,52存储在数组中?(C编程)

use*_*466 1 c

当我声明testArray [] = {'1','2','3','4','5'}时,为什么49,50,51,52存储在数组中?我应该如何初始化字符串数组?谢谢

Gre*_*ill 17

您正在使用字符初始化数组,并且数组中存储的是这些字符的ASCII值.

您可以使用以下内容打印字符值:

for (int i = 0; i < sizeof(testArray)/sizeof(testArray[0]); i++) {
    printf("character '%c', ASCII value %d\n", testArray[i], testArray[i]);
}
Run Code Online (Sandbox Code Playgroud)

打印的第一个值%c将数字解释为要打印的字符的ASCII值.打印的相同值打印%d数字本身.