今天写程序的时候遇到一个问题,将一个一行写不下的长字符串赋值给一个指针时出现了错误,不能调试通过。错误代码如下所示:
static char *t3="a b c d e f g h i j k l m
n o p q r s t u v w x y z
a b c d e f g h i j k l m
n o p q r s t u v w x y z
a b c d e f g h i j k l m
n\n";
后来经过了解发现,赋值的时候要在每一行都加上双引号,如下所示:
static char *t3="a b c d e f g h i j k l m "
"n o p q r s t u v w x y z "
"a b c d e f g h i j k l m "
"n o p q r s t u v w x y z "
"a b c d e f g h i j k l m "
"n\n";
我的理解是若只在开头和结尾加双引号,则相当于将每行字符串后面和前面的空白字符也都算进字符串中了,这是不对的。而每行都打上双引号的话,就可以很清楚的知道双引号中的内容才是字符串。
总之,在字符串要分行写的时候,一定要在每行都打上双引号的。