Bootstrap

【C语言】C语言中容易忽略的知识点与技巧

这里是复习频道

请添加图片描述



🤷‍♀️前言

大家有没有一种感觉,随着一门编程语言的学习,或者是一门课程的学习,经过系统的学习后,总会遗忘或者不熟悉一些有用的内容,甚至一些基本的知识点,博主将开启一个系列来集锦这些爱逃跑的内容.


🦔字符串常量

像"ABC"和’‘您好!’'这样用双引号(" ") 括起来的一连串连续排列的文字,称为字符串常量(string literal)

🦔输出函数puts

//两个整数的和
#include <stdio.h>
int main()
{
	int n1;
	int n2;
	puts("请输入两个整数");
	printf("整数1:");
	scanf("%d",&n1);
	printf("整数2:");
	scanf("%d",&n2);
	printf("它们的和是%d",n1+n2);
	return 0;
}

这里用到了puts函数(末尾的s取自string)
puts函数可以按顺序输出作为实参的字符串,并在结尾换行。也就是说,puts("…")和printf("…\n")的功能是差不多的.
😊在需要换行且不用进行格式化输出的时候,就可以使用puts函数来代替printf函数

  • puts函数的实参只能有一个。符号%的显示方法与printf有所不同
  • printf函数的第一个实参是格式化字符串。格式化字符串中可以包含用来指定实参的格式的转换说明。格式化字符串中转换说明以外的字符,基本上原样输出。
  • puts函数在输出字符串后,还会输出换行符
  • scanf函数时读取通过键盘输入的数值并将其存储在变量中的函数。使用scanf函数时,变量名前需要加上&。转换说明%d指定了读取十进制数.

🦔除法运算的商和余数

除法运算有两种。通过除法求商的运算符是 /

整数/整数                    商的整数部分

如上所示,除法运算只取商的整数部分,也就是会舍弃小数点以后的部分。例如,5/3的结果是1,3/5的结果是0.

整数%整数                 余数

🦔获取整数的最后一行数字

显示读取出的整数的最后一行数字
#include <stdio.h>
int main()
{
	int no;
	printf("请输入一个整数");
	scanf("%d", &no);
	//no除以10所得的余数
	printf("最后一位是%d\n", no % 10);
	return 0;
}

🐯除法运算的结果

进行除法运算的/运算符的运算结果是依赖于编译器的。

  • 两个操作符都是正数时
    不管哪种编译器,商和余数都是正数。
x/yx%y
正/正 例x = 22,y = 542
  • 两个操作数中至少有一个为负数时
    至于/运算符的结果是“小于代数商的最大整数”还是“大于代数商的最小整数”,要取决于编译器。

    x/yx%y
    负/负 例x = -22,y = -54-2
    53
    负/正 例x= -22,y = 5-4-2
    -53
    正/负 例x = 22,y = -5-42
    -5-3
    • 🤯和x,y的符号无关(只要y不是0),(x/y)*y+x%y的值和x一致

🦔有关赋值

基本赋值运算符   a=b   把b的值赋给a

基本赋值运算符一般简称为赋值运算符
表达式由变量和常量,以及连接他们的运算符组成。

vx + 32        进行加法运算的表达式

其中,vx,vx+32都是表达式

vc = vx + 32          赋值表达式

其中 vc,vx,32,vx+32和vc = vx+32都可以看作表达式。当然,vc是赋值运算符 = 的第一操作数,vx+32是第二操作数。
一般情况下 使用什么运算符的表达式,称为什么表达式。因此,使用赋值运算符的表达式,就称为赋值表达式

  • 🤯表达式语句
vc = vx + 32;    表达式语句

这种由表达式和分号组成的语句称为表达式语句


# 🦔使用printf函数输出% 格式化字符串中写的是**%%**。这里的格式化字符串中的**%**符号具有转换说明的功能。因此,当不需要进行转换说明,而只想输出**%**的时候,就必须写成 **%%**

在这里插入图片描述

  • 当使用不具有转换功能的puts函数来进行输出的时候,就不能写成**%%(这样会输出%%**的)

🦔double类型的运算

读取两个实数值,显示出他们的和,差,积,商。

#include <stdio.h>
int main()
{
	double vx;
	double vy;
	puts("请输入两个数");
	scanf("%lf %lf", &vx, &vy);//小写英文字母l
	printf("vx + vy = %f\n", vx + vy);
	printf("vx - vy = %f\n", vx - vy);
	printf("vx * vy = %f\n", vx * vy);
	printf("vx / vy = %f\n", vx / vy);
	return 0;
}

在这里插入图片描述

  • double类型不能使用余数的运算符%
    double类型的变量通过scanf函数赋值的时候需要使用字符串 %lf ,请注意这一点。
intdouble
使用printf函数显示printf("%d", no)printf("%f", no)
使用scanf函数读取printf("%d",&no)scanf("%lf",no)

🦔数据类型和运算

进行整数/整数运算的时候,商的小数部分会被舍弃,但是浮点数之间的运算,就不会进行舍弃处理。

  • 运算符%本身的特性决定了它只能用于整数之间的运算,而不能用于浮点数之间的运算。
int / int ->int
double / double -> double
double / int -> double
int / double ->double

由于C语言包含了许多种数据类型,详细的规则非常复杂,因此我们可以大致理解如下

  • 🤯运算对象,即操作数的类型不同时,较小的数据类型的操作数会转换为较大的数据类型(范围更大),然后再进行运算
  • 所谓的“较大的数据类型”,并不是说double类型实际上比int类型更大,而是说它还可以保存小数点之后的部分。

总结

(●’◡’●)今天就先到这里啦,本栏目预计有十期,全部完结了会发布总结篇,方便大家复习查找,涵盖所有C语言哦

请添加图片描述
帅哥美女求个三连啦!!!~~~~

;