“总有人间一两风,
填我十万八千梦”
🍑作者:小赛毛
💕文章初次日期:2022/10/9
必备工作:
VS2022官网下载地址https://visualstudio.microsoft.com/zh-hans/vs/VS2022安装使用教程,Visual Studio 2022详细安装使用调试教程C语言编译器,C++编译器_哔哩哔哩_bilibili
编译+链接+运行
ctrl+f5
fn+ctrl+f5
字符串+转义字符
字符常量
①用单引号引起来的单个一般字符,
区分大小写
例如:'a'、'1'、'#'、' '是合法的
而'abc'、''是非法的
②转义字符
1.字符串
由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符
串。
int main()
{
char arr1[] = "abc\0def";
char arr2[] = { 'a','b','c','d','e','f', '\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
代码运行起来我们看一下结果:
在这里再一次显示了 \0 作为结束标志的重要性!
2.转义字符
//转义字符 - 转义就是转变它的意思
现在呢我想去打印C盘下test文件夹下的test.c文件:
int main()
{
printf("c:\test\test.c");
return 0;
}
我们发现结果是这样的,这是怎么了呢,为什么和我们预想的不一样呢?
原因很简单,在这里 \t 被认定为一个转义字符
我们再来看一段代码:
int main()
{
/*printf("c:\test\test.c");*/
printf("abcndef");
printf("abc\ndef");
return 0;
}
代码的运行结果为:
为什么会出现这种情况呢?
因为在n的前面加上\,就形成了换行符!
//转义字符 - 转义就是转变它的意思
int main()
{
printf("c:\\test\\test.c");
printf("abcndef");
printf("abc\ndef");
//三字母词 -
//??) -> ]
printf("(are you ok\?\?)");//(are you ok]
printf("%c\n", 'a');
printf("%c\n", '\'');
printf("%s\n", "abc");
printf("%s\n", "a");
printf("%s\n", "\"");
printf("\a\a\a\a\a");
printf("%c\n", '\135');
64+24+5 =
printf("%c\n", '\x42');
return 0;
}
举个🌰:
strlen:获取字符串的有效长度,不包括'\0'
"c:\test\121": 在该字符串中,\t是转移字符,水平制表,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符'Q' ,故上述字符串实际为:"c: esty",只有7个有效字符
答案解析:
A:'\n' 转义字符,代表换行
B:'\060' 转义字符,060八进制数据,十进制为48,表示ASCII码为48的'0'
C:'\q' 什么都不是
D:'\b' 转义字符,表示退格
注意点:①我们字符常量在计算机内存中用ASCII 表示
例如:'a' ASCII值为97,'b' ASCII值为98
'A' ASCII值为65,'B' ASCII值为66
26个字母的ASCII值大家要知道,包括大小写
字符可以参与任何整型运算
'B'-'A'=1、'A'+1='B'
②用转义字符\加数字(八进制或十六进制)来表示一般字符八进制不以0开头、十六进制
只能以小写x开头,例如:\x41是字母A
4、字符串常量
用双引号引起来的一个或多个字符
例如:"ncre"、"Beijing"、"a"
5、符号常量
例如: #define P 2
后面编程用到了P就代表的是2
注意:定义符号常量位置跟前面讲的预处理命令在一起
那么刚才呢,我们一直说到变量,那我接下来就为大家介绍一下变量、常量的概念
变量是用来描述变化的数据
常量是用来描述不变的数据
变量
定义变量的方法
int age = 150;
float weight = 45.5f;
char ch = 'w';
//" "字符串
//’ ‘ 字符
变量的定义
1、概念:其空间的值随时都可以变化的量
2、C中的变量必须先定义后使用(其变量名的命名规则要符合前面自定义标识符的命名规则)
3、变量的实质:就是代表内存空间
变量定义方法
1、一次定义一个变量的方法:
int a;
float b;
2、一次定义多个同种类型变量的方法:
int a,b;
定义变量常用关键字归纳
int 基本整型
long 长整型
float 单精度型
double 双精度型
char 字符型
算术表达式
归纳
1、算术表达式中,自左向右进行计算
2、计算中遵循算术运算的优先级别
3、运算符二面必须是同种数据类型
4、运算符的二面是什么类型,结果就是什么类型
5、%运算的二面必须是整型
数据计算的含义
参加数据运算的符号两边的数据类型必须
一致,结果跟参加计算类型一致
例如:1/2=0
1.0/2.0=0.5
自动转换
char→int→float→double
从前到后转换计算机自动完成
则1.0/2先把2转换成2.0 →1.0/2.0=0.5
强制类型转换
double→float→int→char
从前到后转换必须由我们人工来完成
则使1.0/2结果为0 就必须先把1.0强制类型转换成1即(int)1.0=1
(int)1.0/2=0
例如:把3.14转换成3即(int)3.14=3
例题
答案:A
例题
解析:(x*1000+0.5)表示x向右移动3位小数,加0.5,也就是x的小数第4位加5,若这位大于等于5,则进1到个位。因为“5.16894*1000=516 8.94, 5168.94+0.5=5169.44”,所以(int)(x*1000+0.5)强制转换为整型结果为5169。“5169/1000.0=5.169”,由于分母1000.0为浮点型所以结果自动转换为浮点数,故printf(“%lf\n”,5.169)结果是5.16900。故答案为A选项。
加油啦~
记得一键三连嗷!三连!!三连!!!