why this code works in C

后端 未结 2 1389
情话喂你
情话喂你 2020-12-12 04:09
#include 

int main(){

char array[2];
array[0] = \'q\';
array[1] = \'a\';
printf(\"%s\",array);

return 0;
}

if you ask me this cod

相关标签:
2条回答
  • 2020-12-12 04:44

    When i execute it, it works perfectly.

    You just got (un)lucky: your code exhibits undefined behavior, because it lets the printf's %s parameter run off the end of the sequence of characters that is not null-terminated.

    A string in C is a sequence of char, which must have an extra character with the value 0, called the null terminator. Here is a way to make your code work without undefined behavior:

    char array[3];
    array[0] = 'q';
    array[1] = 'a';
    array[2] = '\0';
    
    0 讨论(0)
  • 2020-12-12 04:53

    In C, String is identical to character arrays. There is no such thing as String in C.

    0 讨论(0)
提交回复
热议问题