C深刨6 for while do,continue break void

文章目录

while do for基本解释

**while
条件初始化
while(条件判定){
业务更新条件更新
}
for
for(条件初始化; 条件判定; 条件更新){
业务代码
}
do while 条件初始化do{
条件更新
}while(条件判定);
**
do while 适用于那种游戏界面呀,一上来无论如何先让你来一次的场景,对于这样的有奇效

3个流

接下来我们说一下三个流
任何C程序,在运行之前都会默认代开三个输入输出流
stdin 标准输入流 ——键盘
stdout 标准输出流——显示器
stderr 错误输出流——显示器

printf本质是向显示器写数据,scanf本质是从键盘读入数据

getchar

C深刨6 for while do,continue break void
C深刨6 for while do,continue break void
getchar的意思是从输入流中获得一个字符,本质上这个stdin是文件指针
但是他的返回类型为啥是int能,获取字符不应该是char吗?
这里解释一下:char类型范围是 [0~255] 在这个区间的都是合法的范围,比如返回类型就是char,但是如果要是返回的值要是大于这个范围,就会发生呢截断,返回的内容和你想要的就不一样了,所以返回的类型大一些
讲一下getchar一些该注意的点
C深刨6 for while do,continue break void
C深刨6 for while do,continue break void
--------------------------------------------------------------------------------------------------
讲到这我们来了聊一下printf 和 scanf
C深刨6 for while do,continue break void
证明:
C深刨6 for while do,continue break void这一点一定要明确!
这时就有人问了,我要用scanf输入12345,变量里面放的还是字符吗?
对滴!!!scanf标准输入,你在输入了之后,他会自动把他改为整型或者其他放到变量里
键盘输入的内容或输出的内容,或者向屏幕打印的,都是字符!!!!!!!!!!!
故键盘,屏幕又被称为字符设备

break

#include<stdio.h>
int main(){
	while (1){
		char c = getchar();
		if ('#' == c){
			break;
		}
		printf("%c", c);
	}
	return 0;
}

C深刨6 for while do,continue break void输入井号,break就直接跳出循环

continue

C深刨6 for while do,continue break void
continue跳出本次循环
C深刨6 for while do,continue break void
小节:continue在while和do被执行时都是跳到,条件判定哪里
这里一定要明确

我们在来看for循环中的continue
C深刨6 for while do,continue break void
注意:continue在for循环中是跳转到条件更新哪里,可不是条件判定哪里,要是跳到条件判定哪里,就是死循环了

goto

基本用法:
C深刨6 for while do,continue break void
goto 模拟实现循环

int main(){
	int i = 0;
	next:
	if (i < 10){
		i++;
		printf("[i] goto 模拟循环\n");
		goto next;
	}
	//goto next;在这也是死循环,不满足if,也会跳到这
	return 0;
}

goto 不可以跨函数调用。
C深刨6 for while do,continue break void

void

void是否可以定义变量呢
C深刨6 for while do,continue break void
是不行的
C深刨6 for while do,continue break void
void在vs中显示占内存大小是0字节,所以说肯定是不能定义变量了,
定义变量的本质就是开辟空间,在理论上说你都没开辟空间,肯定不能开定义变量了,在linux上是开辟1字节的空间,也仅仅是用来看作为一个占位符来看待的

哪void可以定义指针吗?
可以的!!!因为编译器能识别出viod
,的指针能占多少个字节, 但是void类型的指针不能进行加减常数操作!!!
C深刨6 for while do,continue break voidC深刨6 for while do,continue break void**viod
指针是可以接收,(常用)别的类型的指针的,也可以被别的指针接收**

void作为函数返回值
C深刨6 for while do,continue break void但是这样就不行了!!!
C深刨6 for while do,continue break voidvoid本就是不用返回数值的,你在用一个整型接收,这不就矛盾了吗

那要是函数返回值啥也不加行吗?
C深刨6 for while do,continue break voidC深刨6 for while do,continue break void

也是没问题的
**总结:1.C语言中函数可以不带返回值,返回值默认是int型
2.viod修饰函数返回值a:占位符,让用户明确不用返回值;
b:告知编译器这个返回值无法接受
3.void充当函数形参是,告知用户或编译器不需要传递参数
C深刨6 for while do,continue break void

4.void*可以接受任何类型的指针,可以被任何常用的指针接收
**

上一篇:【CF827F】Dirty Arkady's Kitchen


下一篇:虚拟化:搭建本地虚拟化环境和安装ubuntu操作系统