降C大法——第二式

 “总有人间一两风,

填我十万八千梦”

🍑作者:小赛毛

💕文章初次日期: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选项。

 加油啦~

记得一键三连嗷!三连!!三连!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小赛毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值