字符串:
“hello word\n”
这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。
注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0s是结束标志,不算作字符串内容。
#include<stdio.h>
int main()
{
char arr1[]="abc";//数组
char arr2[] = { 'a','b','c' };
printf("%s\n", arr1);//打印结果是abc
printf("%s\n", arr2);//打印结果是abc......随机值
return 0;
}
以上代码fn+f10在监视里可以看到arr1和arr2的值,arr1里有默认的0, \0字符串的结束标志。
数据在计算机上存储的时候,储存的是2进制。
‘\0’ 的值是0,‘a’是97,A - 65,ASCLL编码-码值
求字符串长度,关键字:strlen
#include<stdio.h>
int main()
{
char arr1[]="abc";//数组
char arr2[] = { 'a','b','c' };
printf("%d\n",strlen(arr1));
printf("%d\n",strlen(arr2));
return 0;
}
arr1的值等于3,arr2后面没有遇到\0 结果是随机值。
转义字符:
加上\n 它让我们某一个内容不在是原来的意思,换行。
#include<stdio.h>
int main()
{
printf("abc");
printf("abc\n");
return 0;
}
在来测试下,以下代码我们打印个其它。
以下代码结果是什么?\t 转义水平制表符(空格键)
想要打印完整,在\前 加\ 让它只是一个\
#include<stdio.h>
int main()
{
printf("c:\test\32\test.c");
return 0;
}
、
C语言中的转义字符:
转义序列 | 含义 |
\\ | \ 字符 用于表示一个反斜杠,防止它被解释为一个转义序列符。 |
\' | ' 字符 用于表示字符常量。 |
\" | " 字符 用于表示一个字符串内部的双引号。 |
\? | ? 字符 在书写连续多个问号时使用,防止它们被解析成三字母词 |
\a | 警报铃声 警告字符 |
\b | 退格键 |
\f | 换页符 进纸符 |
\n | 换行符 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ooo | 一到三位的八进制数。如:\130x |
\xhh . . . | 一个或多个数字的十六进制数. 如:\x30 0 |
最后俩个\000,\xhh介绍一下,如下代码:
#include<stdio.h>
#include<string.h>///使用strlen需要引用的头文件,srtlen是用来求字符号长度的。库函数。
int main()
{
printf("%d\n",strlen("c:\test\32\test.c"));//这个输出长度是几呢?13
//32---32是2个8进制数字
//32作为8进制代表的那个十进制数字,作为ASCLL码值,对应的字符。
//32-->10进制 26 -->作为ASCll码值代表的字符(是一个向右的箭头)。
//可以测试一下:printf(“%c\n",'\32'); 得出的结果就是一个向右的箭头。
return 0;
}
#include<stdio.h>
int main()
{
printf("%c\n",'\x61');//十六进制数转十进制。 6 1
return 0; 6*16^1 + 6*16^0
} 96 + 1
97 ---ASCLL码值相对应就是a
注释
1.代码中有不需要的代码可以直接删除,也可以注释掉
2.代码中有些代码比较难懂,可以加一下注释文字
注释有俩种风格:
1.C语言风格的注释/**/ (缺陷:不能嵌套注释)
2.C++风格的注释 //xxxxxxxxx 可以注释一行也可以注释多行