Null-Terminated string

后端 未结 4 1380
一个人的身影
一个人的身影 2021-01-17 15:26

Which of the following are null-terminated string?

char *str1 = \"This is a string.\";
char *str2 = \"This is a string.\\0\";
char str3[] = \"This is a strin         


        
相关标签:
4条回答
  • 2021-01-17 16:05

    Don't use char*s="hi" in case you want to do something with the string like modifying it or even if you want to concatenate something to it because here stringhiis in read only section of the memory and your program can crash

    0 讨论(0)
  • 2021-01-17 16:12

    All. C compiler auto aggregates string with a terminate '\0', then store it in a char[] or refer to it by char *;

    0 讨论(0)
  • 2021-01-17 16:13

    They are all null-terminated (str2 and str5 are actually doubly-null-terminated) because using double quotes is a shorthand for a null-terminated char array.

    So this:

    "Hello"
    

    Is actually this:

    {'H', 'e', 'l', 'l', 'o', '\0'}
    

    Variables pointing to string literals such as these should be declared as const.

    0 讨论(0)
  • 2021-01-17 16:26
    • All : a string literal is a null terminated string
    • str2 and str5 have the particularity of being doubly null-terminated strings

    Also :

    • char *str1 should be const char *str1
    • char *str2 should be const char *str2
    0 讨论(0)
提交回复
热议问题