一、转义字符
转义字符:转变了原来的意思
我们可以做个实验:当我们打印一个路径时“C:\taa\tss\ta”会打印出什么呢?
int main() {
char arr1[] = "C:\taa\tss\ta";
printf("%s\n",arr1);
return 0;
}
也许你会以为结果是"C:\taa\tss\ta"吧?但其实是这个哦!
为什么是这个结果呢?我们可以尝试仔细看一下\t \t \t 是不是刚好对应三个空?是的我们找到了规律,而这个\t就是转义字符,将t的原有意思转化为tab制表符(可以理解为很多个空格)。也许你会问,那这样我们是不是没法打印路径了吗?不,我们当然会有相应的转义字符。
int main() {
char arr1[] = "C:\\taa\\tss\\ta"; \\使用\\将\的意思转化为单纯的字符
printf("%s\n",arr1);
return 0;
}
结果:
而这就是转义字符的意义。
\a | 响铃 |
---|---|
\b | 退格 |
\f | 换页 |
\n | 换行* |
\r | 回车 |
\t | 水平制表 |
\v | 垂直制表 |
\\ | 代表一个反斜杠字符* |
\' | 代表一个单引号字符* |
\" | 代表一个双引号字符* |
\0 | 空字符 |
\ddd | 1-3位的任意8进制* |
\xhh | 代表1-2位的任意16进制* |
二、注释
C++中的注释是:\ (也是我们最常用的一种)
而C中的注释是:/ /(这个注释的缺点是无法嵌套注释) 如下
所以我们常常使用//
三、初识选择语句
今天我们就学习一个选择语句吧!
int main() {
int i = 1;
if (i == 0) {
printf("%s\n", "假");
}
else {
printf("%s\n", "真");
}
return 0;
}
事实上仅凭借以上代码就能够熟知if语句格式,那我们也就不多赘述了,我们需要了解的是再C语言中\==和=的意思并不一样。=是赋值符将后面的内容赋到前面,而==是比较符,比较前者与后者的内容,并给出真假。其中0为假,非0为真。
四、初识循环语句
我们今天也学习一个循环语句吧!
int main() {
int i = 0;
while (i < 100) {
printf("计数: %d\n",i);//输出: 计数:i
i++;
}
if (i == 100) {
printf("%d\n", i); // 结果:100
}
return 0;
}
我们也大致能了解到while的结构,但其中i++我想有人并不理解,我们先在这里小小的一下,i++就是i = i + 1的简便写法,后面会深入讲解。
五、初识函数
这个函数可不是系统自带的函数,我们现在需要认识的,是 自己创建的一个函数。让我们看代码吧!
add(int x, int y) { //创建加法函数
int z;
z = x + y;
return z;
}
int main() {
int num1 = 12;
int num2 = 13;
int sum = add(num1, num2); //使用自创建的add函数
printf("%d\n", sum);
return 0;
}
也许你看到这里会觉得自建函数有点没用,因为完全省不了多少个行嘛,甚至还多了几行。哈哈,这只是最简单的运用场景,往后,当我们碰到更复杂的应用场景的时候,你会感谢自创函数的。
六 、数组
数组十分简单,甚至没有什么需要讲的,那我们就提个一嘴吧,数组的下标是从0开始(不要忘了),忘了告诉你们了,数组中的每一个位数的大小都是其类型的大小,如果是int arr[10] = {0};的话,那么,sizeof(arr1[])出来将会是40。
int main() {
char arr1[10] = { 0 }; // 是的,这样我们就定义了一个数组,且这个数组的所有个数为0
return 0;
}
七、操作符
1.算数操作符
也就是+、-、*、/、%
我们唯一需要了解的就是%,%的意思是,取余数,因为9 / 4 = 2...1 那么 9 % 4 = 1。
2.移位操作符
共有:>>(右移位符)、 <<(左移位符)
二者如果遇到数字,意思就是将数字转化为2进制并且整个向左/向右移动一位并且空缺由0补充
3.位操作符
组成:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)
&:将&两旁的数字按二进制展开(因为运算是使用补码,我们计算时也应当展开为补码)后按位比较大小,相同取1,不同则取0,最后计算总值。
int main() {
int a = 3;
int b = -5;
printf("%d\n", a & b);//结果为3
return 0;
}
|:将|两旁的数字按二进制展开(因为运算是使用补码,我们计算时也应当展开为补码)后按位比较大小,任意一方有1则为1,都无1则为0,最后计算总值。(计算与上图相差无几)
^:将^两旁的数字按二进制展开(因为运算是使用补码,我们计算时也应当展开为补码)后按位比较大小,相同取0,不同取1,最后计算总值(计算与上图相差无几)
~:将\~旁的数字按二进制展开,并且全部取反。
4.赋值操作符
组成:+=、-=、/=、*=、%=、=、<<=、>>=、&=、^=、|=
这些复合操作符基本意思相差不大,如果a+=2 那么就是a = a+2,其余可以推测出。
5.单目操作符
意思是只对应一个变量的运算符(只有一边有元素),不同于=等运算符(两边都有元素)
int a = 1; // = 是双目 有a 和1两个元素
printf("%d\n",!a); // !是单目只有a一个元素
//结果是0 因为0是假,非0是真,!的意思是取反
! | 取反(not) |
---|---|
++ | i++意为先使用,后运算(+1) |
++i | 意为先运算,再使用(+1) |
sizeof | 计算类型或者变量的大小 |
~ | 按位取反 |
-- | i--意为先使用,后运算(-1),--i意为先运算,再使用(-1) |
(type) | 强制类型转换。如果int a = 3.14;则会报错,但是如果是int a = (int)3.14;,则不会报错 |
6.逻辑操作符
&&(与):将两旁的表达式进行比较,如两方相同则输出真
||(或):将两旁的表达式进行比较,只要有一方为真就会输出真
7.条件操作符
?: :由?:组成 可理解为exp1?exp2:exp3
exp1的表达式成立时,执行exp2语句并输出值
如果exp1的表达式不成立,则执行exp3语句并输出值
8.函数调用操作符
[]()、()、.、->
[](下标引用操作符):就是数组arr[]中的[]表示其中的数字是下标。
()(函数调用操作符):是printf()中的()表示传参数可以有多个。