3.字符型
1.字符变量和字符常量
char c; char c = 'e';
其中'e'就叫做字符常量,如何理解呢?我们整数赋值时候int c = 5;,其中的5就是个常量,而这里也是这样可以认为他就是一个固定的值,其实事实也是它确实是一个计算机内定义好的一个值。如果感兴趣的可以查看一下ASCII码表,里面有所有的char类型对应的值和字符,其中有一部分可以显示出来的叫做显示字符,无法显示出来的是作为控制字符使用。
要记住的就是小写字母比大写字母的ASCII值大32即可,其中' '对应的ASCII码刚好就是32(你说你看不见?就是空格嘛0.0)
字符常量在使用的时候一定要用''引号引起来,不然的话就会解释为一个变量名。
一起看个栗子🌰
#include<stdio.h> int main{ char c1 = 'z', c2 = 'j', c3 = 117; printf("%c%c%c",c1 , c2 ,c3); return 0 }
最终的输出就是zju,'u'对应的ASCII码值就是117,是不是很有趣。
🍰2.转义字符
上面提到有些字符是非显示字符,称为控制字符。
我们需要掌握的两个最重要的字符是:
\n代表了换行,就是我们平常使用的回车就会输入这个。
\0代表了空字符,这个一般用来当做字符串的末尾,一般是0,但是也看机器的定义。(注意这不是空格!!!)
举个栗子🌰
#include<stdio.h> int main(){ int num1 = 1,num2 = 2; printf("%d\n\n%d", num1, num2); printf("%c", 7); return 0; }
输出结果就是
1
2
其中7并没有打印任何信息,其实是一个控制播放声音的,所以电脑会响一下吧?是吧是吧?
🍡3.字符串常量
C语言内并没有对应的字符串,所谓的字符串就是若干字符组成的串,所以做法就是用多个字符来保存字符串。上面提到的字符常量是''来引用,那么字符串常量就是""来引用的。有没有发现printf里面的那一串其实就是一个字符串0.0。字符串常量可以作为初始值赋给字符数组,用%s输出。
举个栗子🌰
#include<stdio.h> int main(){ char str1[25] = "wo ai de ren bu ai wo"; char str2[25] = "so sad a story it is"; printf("%s, %s", str1, str2); return 0; }
输出结果:wo ai de ren bu ai wo, so sad a story it is.
其实上面的char组成的集合就称为字符串数组,可以直接%s输出。
不能吧字符串常量赋值给字符串变量。(类型不一致)
🌽4. 布尔型
在C++中布尔类型可以直接使用,但是**在C语言中,必须添加stdbool.h头文件才能使用。整型常量赋值给布尔型时会自动转化为true(非零),false(零)。
特别注意这里是非零 正数负数都会转化为true!!!
看个栗子🌰
#include<stdio.h> int main(){ bool falg1 = 0, flag2 = true; int a = 1, b = 1; printf("%d %d %d\n", flag1, flag2, a==b); return 0; }
结果就是:0 1 1
前两个很好理解,后面就是判断a是否和b相等,相等就是true否则是false。
🏋🏻1.2.3 强制类型转换
有时候需要把一种数据类型转换成另外一种数据类型。
(新类型名)变量名
这样就完成了一次强制类型转换。
举个栗子🌰
#include<stido.h> int main(){ double r = 12.56; int a = 3, b = 5; printf("%d\n", (int)r); printf("%d\n", a / b); printf("%.1f", (double)a / (double)b; return 0; }
输出结果:12 0 0.6
可以看到整除就是整数,而转化为浮点数就能得到浮点的结果0.0
⚽️1.2.4符号常量和const常量
符号常量
符号常量通俗的讲,就是替换,即用一个标识符来代替常量,又称为宏定义或者宏替换,基本的格式如下:
#define 标识符 常量
例如:
#include<stido.h> #define pi 3.14 int main(){ double r = 3; printf("%.2f\n", pi * r * r); return 0; }
执行结果就是28.26。这里就是把pi替换为了3.14
const常量
const定义的常量是只读,这片区域定义的值不允许修改。基本格式如下:
const 数据类型 变量名 = 常量;
一个栗子🌰
#include<stdio.h> const pi = 3.14; int main(){ double r = 3; printf("%.2f\n", 2 * pi * r); return 0; }
输出结果18.84
这两个写法都是对的,但是一般更推荐用const的写法,因为define可以定义很多神奇的表达式,它本质就是替换而已,可能会引起错误!!
🏂1.2.5运算符
🤺1.算数运算符
运算符 | 功能 |
+ 加法运算符 | 返回前后两个数字相加 |
- 减法运算符 | 返回前后两个数字相减 |
* 乘法运算符 | 返回前后两个数字相乘 |
/ 除法运算符 | 返回前后两个数字相除(注意数据类型) |
% 取模运算符 | 返回前一个数字除以后面数字的余数 |
++ 自增运算符 | 另一个变量增加1 |
- - 自减运算符 | 另一个变量减少1 |
自增和自减有++i和i++的区别,我们只要记住,谁在前面谁先参与运算就好了,++i中++在前面 所以先++,而i++中i在前面 所以i会返回值是i。
🏌🏻2.关系运算符
运算符 | 含义 | 语法 |
< | 小于 | a < b |
> | 大于 | a > b |
<= | 小于等于 | a <= b |
>= | 大于等于 | a >= b |
== | 等于 | a == b |
!= | 不等于 | a != b |
以上运算符都是成立的时候返回true,不成立返回false
🏇3.三种逻辑运算符
运算符 | 含义 | 语法 | 返回值 |
&& | 与 | a && b | ab都真返回真 其他返回假 |
|| | 或 | a || b | ab都为假返回假 其他返回真 |
! | 非 | !a | a为真就返回假 a是假就返回真 |
🎲4.条件运算符
条件运算符是c于艳丽唯一的三目运算符。
A ? B : C;含义就是当A为真的时候执行并返回B 否则,执行并返回C
举个栗子🌰
#include<stdio.h> int main(){ int a = 3, b = 5; int c = a > b ? 7 : 11; printf("%d\n",c); return 0;
返回结果就是11。因为a>b为假 所以返回后面那个值。
这个最常见的应用是求最大值a > b ? a : b;返回的值就是a、b中较大的那一个。
✈️5.位运算符