use*_*312 3 c character-arrays
所以我读到了:
char pattern[] = "ould";
基本上是更简单的写作方式:
char pattern[] = { 'o', 'u', 'l', 'd', '\0' };
我知道null字符\0标志着字符串的结束,但如果我写它如下:
char pattern[] = { 'o', 'u', 'l', 'd'}; (没有\ 0)
它仍然编译.
哪里pattern没有\0原因问题,因为它似乎是编译没有警告(-Wall)
CB *_*ley 10
如果你没有终止零,你不再有一个空终止字符串,只是一个数组char,所以将它传递给任何期望字符串的函数将是一个错误.例如strlen,作为源参数到strcpy,作为一个...参数来printf用%s格式说明等