C语言中没有字符串类型,只有字符类型,因为字符串相当于字符类型组合在一起。使用双引号括起来的是字符串,使用单引号括起来的是字符。实际的字符串存储时有‘\0’结尾字符。例如“hello world”在内存中的实际存储为“hello world\0”。字符串之间可以拼接,而字符串不能和字符进行拼接,如下所示。
0字符以ASCII码在内存中存储,十六进制表示为30。
而数字0在内存中的实际存储就是0。
打印字符串时,使用字符数组进行存储并打印,但是当数组空间不够时,无法识别到结束标识\0,因此会打印出乱码。
char arr[11] = "hello world";
printf(arr);
需要打印出双引号时:
char arr[11] = "\"hello\"\0world";
printf("%s\n",arr);
运行结果:“hello”
\ddd:三个连续字符表示三个连续的数字(小于8),表示一个八进制数。
\xdd:两个连续字符0~9,a~f之间,表示一个十六进制数。
printf("%d\n", strlen("c:\test\328\test.c"));
strlen函数求取字符串的长度,从开始到结尾标志结束。(要使用头文件#include<string.h>)
运行结果:14
逗号表达式:exp1,exp2,...expN
多个表达式从左往右依次运行,最终返回最后一个表达式的结果作为操作数据。
int a;
a = 10, 20, 30, 30 + 10;
printf("%d\n", a);
a = (10, 20, 30, 30 + 10);
printf("%d\n", a);
运行结果:10 40