day03 - C语言运算符和分支循环

C语言day03

类型限定符:

extern 表示声明,没有内存空间,不能提升

const 定义一个常量

volatile 防止编译器优化代码

register 定义一个寄存器变量

字符串 用""双引号引着的

字符 用单引号引着的

C语言一定有一个结束标记’\0’

printf格式化输出

格式 表示 类型
%d 有符号 - 十进制整型 int
%u 无符号 - 十进制整型 unsigned int
%o 八进制
%x 十六进制
%hd 有符号 - 短整型 short
%hu 无符号 - 短整型 unsigned short
%ld 有符号 - 长整型 long
%lu 无符号 - 长整型 unsigned long
%lld 有符号 - 长长整型 long long
%llu 无符号 - 长长整型 unsigned long long
%c 字符型 char
%f 浮点型 float
%lf 双精度浮点型 double
%c 字符 char
%s 字符串,打印到\0结束 String
%m.df 实型 一共有m位(整数.小数.小数点),n位小数
%0m.df 实型 一共有m位(整数.小数.小数点),n位小数,前面不足用0表示
%% 输出一个百分号,因为 反斜杠\对%转义无效 显示一个百分号
%Ns 显示N个字符串,不足的用空格向左填充
%-Ns 显示N个字符串,不足的用空格向右填充
%0Ns 显示N个字符串,不足的用0向左填充

putChar(‘97’); 用来输出字符的

就是直接输出字符的和printf(‘97’);是一样的

putChar(’\n’); 打印换行

Scanner从键盘接收用户输入

前提:vs里面要在头部添加

# define _CRT_SECURE_NO_WARNINGS

或者使用scanf_s();方法

从键盘接收用户输入

1.接收 整数 %d

int a,b,c;	//创建变量空间
scanf("%d %d %d",&a,&b,&c);

2.接收 字符 %c

char a,b,c;
scanf("%c %c %c",&a,&b,&c);

3.接收 字符串 %s

char str[10];
scanf("%s",str);  //这里不用&符号,因为&符号代表地址值,而str本身就是地址值

隐患:

  • 写字符串的时候具有安全隐患,如果存储空间不足,数据能存储到内存中,但是不被保护
  • scanf在接收字符串是碰到 ,空格和 \n,会自动终止

getChar函数 从键盘获取一个字符

运算符

算术运算符

+

_

*

/

%

++

--
先 * / % 后 + -

除法运算后,得到的结果赋值给整型变量时,取整数部分。

除0 :错误操作。不允许。

对0取余:错误操作。不允许。

不允许对小数取余。余数不能是 小数。 35 % 3.4;

对负数取余,结果为余数的绝对值。10 % -3;  --》 1

++ 和 --:

前缀自增、自减:

	先自增/自减, 在取值。

	int a = 10;

	++a;		// a = a+1;

后缀自增、自减:

	int a  = 10;

	a++;		// a = a+1;

	先取值, 再自增/自减。

赋值运算

int a = 5;

a += 10;  // a = a+10;

a -= 30;  // a = a-30;

a %= 5;	  // a = a % 5;

比较运算符

== 判等。

!= 不等于.

< 小于

<= 小于等于	

> 大于

>= 大于等于


13 < var < 16; ==> var > 13 && var < 16;

逻辑运算符

0为假,非0为真。(1)

逻辑非:!

	非真为假, 非假为真。

逻辑与: &&(并且)

	同真为真,其余为假。

逻辑或:|| (或)

	有真为真。同假为假。

运算符优先级

[]() > ++ -- (后缀高于前缀) (强转) sizeof > 算数运算(先乘除取余,后加减)> 

比较运算 > 逻辑运算 > 三目运算(条件运算)> 赋值运算 > 逗号运算	

三目运算符

表达式1 ? 表达式2 : 表达式3

表达式1 是一个判别表达式。 如果为真。整个三目运算,取值表达式2。

			    如果为假。整个三目运算,取值表达式3。

默认结合性。自右向左。

类型转换

隐式类型转换:

	由编译器自动完成。

	由赋值产生的类型转换。 小--》大 没问题。 大 --》 小 有可能发生数据丢失。

	int r = 3;

	float s = 3.14 * r * r;

	321:	256 128 64 32 16 8 4 2 1
		1   0   1  0  0  0 0 0 1 

	char ch  = 0   1  0  0  0 0 0 1 	

强制类型转换:

	语法:	(目标类型)带转换变量

		(目标类型)带转换表达式

	大多数用于函数调用期间,实参给形参传值。

if分支语句

	if (判别表达式1)
	{
		
		判别表达式为真,执行代码。
	}
	else if(判别表达式2)
	{
		判别表达式1为假,并且判别表达式2,执行代码。

	}
	else if(判别表达式3)
	{
		判别表达式1为假,判别表达式2为假,判别表达式3, 执行代码。
	}
	。。。
	else
	{
		以上所有判断表达式都为假, 执行代码。
	}

switch分支

switch 分支:精确匹配.

	switch(判别表达式)
	{
		
		case 1:
			执行语句1;
			break;			// 防止case穿透

		case 2:
			执行语句2;
			break;

		case 3:
			执行语句3;
			break;
		...

		case N:
			执行语句N;
			break;

		default:
			其他情况的统一处理;
			break;
	}

while循环

	while(条件判别表达式)
	{

		循环体.
	}

do while循环

	无论如何先执行循环体一次。然后在判断是否继续循环。

	do {

		循环体

	} w
发布了49 篇原创文章 · 获赞 6 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zlhyy666666/article/details/104625805