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语言哦

总结

到此这篇关于C语言中你容易忽略的知识点与技巧总结的文章就介绍到这了,更多相关C语言知识点与技巧内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!