Initialize a string in C to empty string

前端 未结 9 1473
甜味超标
甜味超标 2020-12-24 15:06

I want to initialize string in C to empty string. I tried:

string[0] = \"\"; 

but it wrote

\"warning: assignment makes inte         


        
9条回答
  •  有刺的猬
    2020-12-24 15:39

    string[0] = "";
    
    "warning: assignment makes integer from pointer without a cast

    Ok, let's dive into the expression ...

    0 an int: represents the number of chars (assuming string is (or decayed into) a char*) to advance from the beginning of the object string

    string[0]: the char object located at the beginning of the object string

    "": string literal: an object of type char[1]

    =: assignment operator: tries to assign a value of type char[1] to an object of type char. char[1] (decayed to char*) and char are not assignment compatible, but the compiler trusts you (the programmer) and goes ahead with the assignment anyway by casting the type char* (what char[1] decayed to) to an int --- and you get the warning as a bonus. You have a really nice compiler :-)

提交回复
热议问题