5. 字符串+转义字符+注释
5.1 字符串
"hello world\n"这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
#include <stdio.h>
#include <string.h>
int main()
{
printf("hello bit\n");
char arr1[] = "abc";
char arr2[] = { 'a', 'b', 'c', '\0' };
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
tips: (i)\0算作一个字符 (ii)字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
5.2 转义字符
假如我们要在屏幕上打印一个目录: c:\code\test.c,我们该如何写代码?
#include <stdio.h>
int main()
{
printf("c:\code\test.c\n");
return 0;
}
但实际上程序运行的结果是这样的: 这里就不得不提一下转义字符了,转义字符顾名思义就是转变意思。 下面我们就来看一些转义字符:
转义字符 | 释义 |
---|
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 | \’ | 用于表示字符常量’ | \" | 用于表示一个字符串内部的双引号 | \\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 | \a | 警告字符,蜂鸣 | \b | 退格符 | \f | 清屏并换页符 | \n | 换行 | \r | 回车 | \t | 水平制表符 | \v | 垂直制表符 | \ddd | ddd表示1~3个八进制的数字 | \xdd | dd表示2个十六进制数字 |
#include <stdio.h>
int main()
{
printf("(are you ok??)");
printf("(are you ok\?\?)");
return 0;
}
附: 在ANSI C标准中,定义了9个三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符。由于一些非常老式的键盘上没有[]{}#^~|这些字符,因此在C语言中规定了9个三字母词与其对应。
三字母词 | 对应的字符 |
---|
??= | # | ??( | [ | ??) | ] | ??< | { | ??> | } | ??/ | / | ??! | | | ??’ | ^ | ??- | ~ |
#include <stdio.h>
int main()
{
printf("%c\n",'\'');
return 0;
}
#include <stdio.h>
int main()
{
printf("%s\n","\"");
return 0;
}
#include <stdio.h>
int main()
{
printf("c:\code\\test.c");
}
#include <stdio.h>
int main()
{
printf("\a");
return 0;
}
- 问题6:\b的用法
- 问题7:\f的含义
终端在输出‘\f’之后内容之前,会将整个终端屏幕清空,然后在输出内容。由于现阶段用的还不是很多,所以不用过度纠结,先大致了解,等到学到Linux后就可以理解了。 - 问题8:\n的用法
- 问题9:\r的用法
此处\r所代表的回车与键盘上我们所用的回车键是有所区别的。\r的效果是输出回到本行行首,结果可能会将这一行之前的输出覆盖掉,也就是说,\r (要与\n区别开来,\n是换行的,而\r是不换行的)后边的数字替代这一行最开始的相等数目的数字。
#include <stdio.h>
int main()
{
printf("123456\r789");
return 0;
}
- 问题10:\t的用法
- 问题11:\v的用法
#include <stdio.h>
int main()
{
printf("123\v456");
return 0;
}
- 问题12:\ddd的用法
\ddd中的ddd表示1-3个八进制的数字。130这个8进制数字转成10进制数字,作为ASCII码值,表示的字符就是‘X’。
附:
- 问题13:\xdd的用法
\xdd中的dd表示2个十六进制数字。30这个16进制数字转成10进制数字,作为ASCII码值,表示的字符就是‘0’。 附:
5.3 注释
- 代码中有不需要的代码可以直接删除,也可以注释掉
- 代码中有些代码比较难懂,可以加一下注释文字
注释有两种风格:
- C语言风格的注释 :/*xxxxxx*/(缺陷:不能嵌套注释)
- C++风格的注释 //xxxxxxxx(推荐,可以注释一行也可以注释多行)
6. 选择语句
#include <stdio.h>
int main()
{
int input = 0;
printf("要好好学习吗?(1/0)");
scanf("%d", &input);
if(input == 1)
{
printf("好offer\n");
}
else if(input == 0)
{
printf("卖红薯\n");
}
return 0;
}
7. 循环语句
C语言中如何实现循环呢?
- while语句
- for语句(后期讲)
- do … while语句(后期讲)
#include <stdio.h>
int main()
{
int line = 0;
while (line < 20000)
{
printf("写代码:%d\n", line);
line++;
}
if (line == 20000)
printf("好offer\n");
return 0;
}
8. 函数
函数的特点就是简化代码,代码复用。
9. 数组
9.1 数组定义
要存储1-10的数字,怎么存储? C语言中给了数组的定义:一组相同类型元素的集合
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int arr1[10] = {1,2,3};
int arr2[10];
int arr3[] = {1,2,3};
int arr4[];
int n = 10;
int arr[n];
return 0;
}
9.2 数组的下标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。数组可以通过下标来访问。
#include <stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d\n", arr[8]);
return 0;
}
附:
int arr[10] = {1,2,3,4,5,6,7,8,9,10} | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
9.3 数组的使用
#include <stdio.h>
int main()
{
int arr[10];
int j = 0;
while (j < 10)
{
scanf("%d", &arr[j]);
j++;
}
int i = 0;
while (i < 10)
{
printf("%d ", arr[i]);
i++;
}
return 0;
}
附:
通过这14点,让你快速入门C语言(1)
|