四、字符串&转义字符&注释
0x00 字符串
📚 定义:
"hello world."
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal)
📚 关于斜杠零:
字符串的结束标志是一个 \0 转义字符。
在计算字符串长度的时候 \0 是结束标志,不算字符串的内容!
💬 下面代码,打印的结果是什么?为什么?
int main() { char arr1[] = "abc"; //数组 // "abc" -- 'a' 'b' 'c' '\0' // 这里面,'\0' 字符串的结束标志 char arr2[] = {'a', 'b', 'c'}; char arr3[] = {'a', 'b', 'c', '\0'}; printf("%s\n", arr1); printf("%s\n", arr2); printf("%s\n", arr3); return 0; }
🚩 打印结果如下:
0x01 计算字符串长度
📚 strlen 函数:返回字符串的长度
📜 使用时需引入头文件 <string.h>
💬 代码演示:
#include <stdio.h> #include <string.h> int main() { char arr1[] = "abc"; char arr2[] = {'a', 'b', 'c'}; printf("%d\n", strlen(arr1)); printf("%d\n", strlen(arr2)); return 0; }
🚩 运行结果如下: 3 随机值
0x02 ASCII 码值
📚 ASCII (American Standard Code for Information Interchange)
“是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符”
0x03 转义字符
📚 转意字符顾名思义就是转变字符的意思。
💬 让斜杠就是斜杠:
int main() { printf("c:\\test\\32\\test.c"); //再加一个斜杠,规避转义字符检测 return 0; }
🚩 运行结果: c:\test\32\test.c
💬 三字母词、输出单引号、ddd、xdd:
int main() { printf("(are you ok?\?)\n"); // ??) -- ] - 三字母词 printf("%c\n", '\''); //输出一个单引号 printf("%s\n", "\""); //输出一个双引号 printf("%c\n", '\130');//8进制的130是10进制的多少呢? //X - ASCII码值是88 printf("%c\n", '\101'); // A- 65 - 8进制是:101 printf("%c\n", '\x30'); //48 - '0' return 0; }
🚩 运行结果: (are you ok??) ' " X A 0
❓ 下列代码打印的结果是什么?
int main() { printf("%d\n", strlen("c:\test\328\test.c")); return 0; }
💡 答案:14
0x04 注释
📚 代码中有不需要的代码可以直接删除,也可以注释掉
代码中有些代码比较难懂,可以加一下注释文字
有两种风格:
① C语言风格的注释 /* xxxxxx */
缺陷:不能嵌套注释
② C++风格的注释 //xxxxxxxxx
优点:可以注释一行也可以注释多行
快捷键:Ctrl + /?
💬 演示:
/* C语言风格注释 int Add(int x, int y) { int z = 0; z = x + y; return z; } */ int Add(int x, int y) { return x + y; } int main() { // C++注释风格 // int a = 10; printf("%d\n", Add(1,2)); //调用Add函数 return 0; }
五、分支和循环
0x00 if 语句
📚 定义:if 语句是指编程语言(包括c语言、C#、VB、java、汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
💬 选择语句代码演示:
int main() { int a = 10; int b = 20; if(a>b) { printf("a比b大\n") ; } else { printf("b比a大\n"); } return 0; }
🚩 运行结果: b比a大
❓ C语言中如何实现循环呢?
1. while 语句
2. for 语句
3. do ... while 语句
这里我们着重先了解下 while 语句。
📚 while 循环的基本概念:while是计算机的一种基本循环模式。当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。
💬 演示代码:敲三万行代码
#include <stdio.h> int main() { int line = 0; while(line < 30000) { printf("敲代码: %d\n", line); line++; } if(line == 30000) { printf("恭喜你敲满30000行代码!\n"); } return 0; }
六、函数
❓ 什么是函数?
数学中的函数 f(x) = 2×x+5,C语言中的函数也是一样的。
📚 函数的特点就是:简化代码,代码复用。
💬 代码演示:
int Add (int x, int y) { int z = 0; z = x + y; return z; } int main() { int num1 = 0; int num2 = 0; scanf("%d%d", &num1, &num2); // int sum = num1 + num2; // 函数的方式解决 int sum = Add(num1, num2); printf("%d\n", sum); return 0; }
七、数组
📚 要存储1-10的数字,怎么存储?
“C语言给了数组的定义:一组相同类型元素的集合”
定义一个整型数组,最多放十个元素:
💬 代码演示:
int main() { int a = 0; int b = 0; int c = 0; int d = 0; //... // 10个整型1-10存起来 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; char ch[5] = {'a', 'b', 'c'}; // 不完全初始化,剩余的默认为0 // 用下标就可以访问元素 printf("%d\n", arr[0]); // 打印整个数组 int i = 0; while(i<10) { printf("%d ", arr[i]); i++; } return 0; }