《C语言深度剖析》第一章 关键字详解 p3 C语言从入门到入土(进阶篇)(一)

简介: 1.switch case 组合 对于switch && case && break && default 的总结 2.getchar 3.putchar 4.do、while、for 关键字 break && continue 区别 5.goto 关键字 6.void 关键字 6.1 void修饰函数返回值和参数 6.1.2 void用来作为函数返回值 6.1.3 void 作为函数参数 6.2 void 指针 6.3 void * 定义的指针变量可以进行运算操作吗 6.4 void * 用来设计通用接口

1.switch case 组合


switch ( 整型变量 / 常量 / 整型表达式 ){

case var1 :

break ;

case var2 :

break ;

case var3 :

break ;

default :

break ;

}


又有朋友问了,已经有if else为何还要switch case, 其实是因为switch语句也是一种分支语句,常常用于多分支的情况。这种多分支,一般指的是很多多分支,而且判定条件主要以整型为主。而且是指大数据的,用swich case 比 if else 会方便很多。(就是少写很多代码,可以偷懒)


那case和break的作用是什么在switch中?

答案是case是作为判判定功能而break是作为分支功能

即:先从switch()传进去一个数,然后找case进行判断,当然如果没有可以与之判断的case就会走向default。再就是进入case,如果里面没有break,就会往下面的case继续执行,直到遇到break或者结束程序。


如果多个不同 case 匹配,想执行同一个语句,推荐做法:

#include <stdio.h> 
#include <windows.h> 
int main() 
{ 
int day = 6; 
switch (day){ 
case 1: 
case 2: 
case 3: 
case 4: 
case 5:
    printf("周内\n"); 
break; 
case 6: 
case 7: 
    printf("周末\n"); 
break; 
default: 
    printf("bug!\n"); 
break; 
}
    system("pause"); 
    return 0; 
}

结论: case 之后,如果没有 break ,则会依次执行后续有效语句,直到碰到 break


对于switch && case && break && default 的总结


下面给大伙一张之前做的笔记图同时解释:


87.png


1.好像说得很清楚了就不解释了

2.当一个case要执行多条语句时,如果需要在里面定义变量,就需要用{}括起来这一个case语句里面的代码块,或者只写一个函数,然后调用这个函数(就此一条语句),当然后面都要跟上break。(其实个人一致认为break跟不跟完全是无法规定的,都要看具体情况,所以大家自行斟酌)

3.好像也挺清楚的。

4.额.....也清楚哈,不懂私我哈!

5.case后面只能接常量,不能是const修饰的常量,因为其本质还是变量,但是可以用define定义的常量。最后的布局方式就是大家最好按照从小到大的顺序去写case,当然还有一个小技巧就是把常用的case写在前面可以提高程序的效率。


PS:目前了解一下就行

88.png


2.getchar

89.png


头文件:

90.png


作用1:从缓冲区读走一个字符,相当于清除缓冲区。


作用2 : 前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,接下来的scanf()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误。


简单说就是从键盘读一个字符进去。下面也可以很好地反应出来:

91.png

92.png


这里中间有两个空行是因为一个是我们回车的时候有一个\n保留了,还一个就是我们程序自己输入的\n。现在我们不带\n

93.png

PS:再一个大家很可能忽视的,键盘输入的内容或者是显示器中打印的内容,全部都是字符!

94.png

printf返回值:返回的是打印字符的个数!(有‘\0’)

95.png96.png


虽然我们输入的是字符,但是会经过这些函数转换为我们想要的数字或其他。(就是%d或者啥的)所以键盘,显示器都称之为字符设备。


总结:

getchar() 用于读取用户从键盘输入的单个字符,它有一个整型的返回值,当发生读取错误的时候,返回整型值 - 1,当读取正确的时候,它会返回用户从键盘输的第一个字符的ASCII码, 当程序调用getchar时.运行程序时 就等着用户从按键输入, 用户输入的字符被存放在键盘缓冲区中.直到用户按回车为 止(回 车字符也放在缓冲区 中),当用户输入回车之后,getchar才开始从输入流中每次读入一个字符,输入的字符不只一个的时候,后续的getchar调用不会等待用户按键, 而直接读取缓冲区中的字符, 直到缓冲区中的字符读完之后,才等待用户按键,getchar函数输入数字也按字符处理,单个的getchar函数输入多于一个字符时,只接收第一个字符。

相关文章
|
20天前
|
C语言
【C语言】break 关键字详解
- `break` 关键字用于提前退出循环体或 `switch` 语句的执行。 - 在 `for`、`while` 和 `do-while` 循环中,`break` 可以帮助程序在满足特定条件时退出循环。 - 在 `switch` 语句中,`break` 用于终止 `case` 代码块的执行,避免代码“穿透”到下一个 `case`。 - 注意 `break` 只会退出最内层的循环或 `switch` 语句,确保在嵌套结构中正确使用 `break` 以避免意外的控制流行为。
66 2
|
20天前
|
传感器 安全 编译器
【C语言】enum 关键字详解
`enum`关键字在C语言中提供了一种简洁而高效的方法来定义一组相关的常量。通过使用枚举,可以提高代码的可读性、可维护性,并减少错误的发生。在实际应用中,枚举广泛用于表示状态、命令、错误码等,为开发者提供了更清晰的代码结构和更方便的调试手段。通过合理使用枚举,可以编写出更高质量、更易维护的C语言程序。
89 2
|
20天前
|
缓存 安全 编译器
【C语言】volatile 关键字详解
`volatile` 关键字在 C 语言中用于防止编译器对某些变量进行优化,确保每次访问该变量时都直接从内存中读取最新的值。它主要用于处理硬件寄存器和多线程中的共享变量。然而,`volatile` 不保证操作的原子性和顺序,因此在多线程环境中,仍然需要适当的同步机制来确保线程安全。
56 2
|
20天前
|
存储 编译器 程序员
【C语言】auto 关键字详解
`auto` 关键字用于声明局部变量的自动存储类,其作用主要体现在变量的生命周期上。尽管现代C语言中 `auto` 的使用较少,理解其历史背景和作用对于掌握C语言的存储类及变量管理仍然很重要。局部变量默认即为 `auto` 类型,因此在实际编程中,通常不需要显式声明 `auto`。了解 `auto` 关键字有助于更好地理解C语言的存储类及其在不同场景中的应用。
39 1
|
20天前
|
C语言
【C语言】continue 关键字详解
`continue` 关键字在 C 语言中用于跳过当前循环中的剩余代码,并立即开始下一次迭代。它主要用于控制循环中的流程,使程序在满足特定条件时跳过某些代码。
52 1
【C语言】continue 关键字详解
|
10天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
22 5
|
20天前
|
C语言
【C语言】return 关键字详解 -《回家的诱惑 ! 》
`return` 关键字在 C 语言中用于终止函数的执行,并将控制权返回给调用者。根据函数的类型,`return` 还可以返回一个值。它是函数控制流中的重要组成部分。
50 2
|
20天前
|
存储 人工智能 程序员
【C语言】一篇通关所有 “关键字”,值得收藏篇!
关键字是编程语言预定义的保留词,代表特定的操作或结构。C语言中的关键字用于定义变量类型、控制语句、存储类、数据类型等。使用这些关键字可以创建函数、控制程序的流程、声明变量和常量等。
51 0
|
20天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10
|
20天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
42 9
下一篇
DataWorks