初识 C 语言(3)

目录

一,字符串+转义字符+注释

1,字符串

2,转义字符

3,注释

二,选择语句

 1.  if 语句

2.  switch 语句


一,字符串+转义字符+注释

1,字符串

请看下面一段代码

从上面一段代码中可以看到:

char  arr1[] = {"abc"} ;  //结果正常输出abc
char  arr2[] = { 'a','b','c'} ;  //输出奇怪的abc烫烫烫......

arr1  为什么能正常输出  abc ?     

arr2  为什么不能正常的输出  abc ?

这就关系到在 C 语言中,字符串是一系列字符的集合,以 '\0' (空字符)作为结束标志。

—在 arr1[] = {"abc"} ; 中的 abc 后面有被隐藏的空字符;

—在arr2[] = { 'a','b','c'} ;中的  'a','b','c' 是没有   '\0'  结束标志的,那我们给它加上。

如下:

可以看到修改后的  arr2[] = { 'a','b','c','\0'};   结果正常输出abc

2,转义字符

C 语言中的转义字符是一些具有特殊含义的字符,它们以反斜杠 \ 开头,用于表示控制符(如回车、换行等)、不可见字符或具有特殊功能的字符。

以下是一些常见的转义字符及其含义:

常见转义字符
\0空字符,常被系统自动加在每个字符串的尾部,作为字符串的结束标志,占用一个字节的内存空间。
\a响铃,输出时会发出错误音效。
\b退格(backspace),在某些编译器中,它的功能类似于键盘上的向左删除键,会将光标向前移动一位,但不会删除字符,如果后面有新的字符输出,新字符会覆盖原来的字符;在另一些编译器中,它可能只是移动光标位置。
\t水平制表符,即横向跳格,跳到下一制表位,可把每 8 个字符看作一个制表位, \t 前面字符还差几个满 8 个字符就空几个字符的位置。
\n回车换行(enter),将光标移动到下一行的开头。

\v

垂直制表符,即竖向跳格,在某些编译器中可能无法体现其效果。
\f走纸符,换页,将当前位置光标移到下一页开头,在控制台中通常无法体现出作用,但在打印走纸换页时可以使用,它能将后面的文本打印到一张新纸。
\r回车,将光标位置移到本行开头。
\"表示双引号 " 
 \'表示单引号 
 \?表示问号 ,防止在书写连续多个问号时被解析成三字母词。
\\表示反斜线字符 \ 。
 \ddd其中 ddd 表示 1 到 3 位八进制数。将八进制数转换为十进制,该十进制数对应的 ASCII 码就是输出的字符。需要注意,每个八进制数字不能大于 7,一旦大于 7 就要进位,而且 \ddd 最多只能支持三位数字,若超出范围,编译器可能会报错,或者遇到非八进制数字时则转换结束,直接取末尾数字。
\xhh其中 hh 表示两位十六进制数。使用前要加 \x ,将十六进制数转换为十进制,该十进制数对应的 ASCII 码就是输出的字符。

3,注释

在 C 语言中,有两种注释方式:


1. 单行注释:以  //  开头,直到该行结束都是注释内容。
 

例如:

int num = 3;  // 这是单行注释
2. 多行注释:以  /*  开头,以  */  结束,之间的内容都是注释。
 

例如:

/*
  这是一个多行注释
  可以有多行内容
*/

int main() {

    // 代码
}

在许多 C 语言的集成开发环境(IDE)中,常见的快捷键用于注释和取消注释如下:
 
以 Visual Studio / Visual Studio Code 为例:
—注释: Ctrl + K  + C
—取消注释: Ctrl + K  + U

注:具体的快捷键可能因您使用的开发环境和配置而有所不同。

注释的目的是为了提高代码的可读性,便于自己和他人理解代码的功能和逻辑。


二,选择语句

在 C 语言中,有两种主要的选择语句:

 if 语句和 switch 语句
 

1.  if 语句
 

单分支结构:
if (表达式) {
    语句;
}

先计算表达式的值,如果该值不为0(即为真),则执行语句。

双分支结构:
if (表达式) {
    语句1;
} else {
    语句2;
}

当表达式为真时,执行语句1;否则,执行语句2。
 

多分支结构:
if (表达式1) {
    语句1;
} else if (表达式2) {
    语句2;
} else {
    语句3;
}

首先计算表达式1的值,如果为真,则执行语句1;如果表达式1为假,则计算表达式2的值,若为真则执行语句2;若表达式2也为假,则执行语句3。

2.  switch 语句

switch (整型表达式) {
    case 整型常量表达式1:
        语句1;
        break;
    case 整型常量表达式2:
        语句2;
        break;
    case 整型常量表达式3:
        语句3;
        break;
    ……
    default:
        语句 n;
        break;
}


在程序运行时,首先计算整型表达式的值,然后用该值与后面的各个 case 标签进行匹配(即查看该值是否与 case 标签后的整型常量表达式的值相同)。如果有匹配的 case 标签,则从该 case 标签起,执行后续的语句,直至遇到 break 语句为止。如果没有匹配到 case 标签,则执行 default 标签后的语句,直到遇到 break 为止。
 
注:
 case 后面的表达式必须是整型常量或字符常量。


每个 case 后的语句通常以 break 结尾,以防止继续执行后面的 case 语句。如果没有 break,则会继续执行下一个 case 的语句,直到遇到 break 或 switch 语句结束。

default 部分是可选的,但为了代码的完整性和可读性,建议添加。default 部分的位置可以任意,编译器会先检查所有的 case 标签,若都不匹配才会执行 default 部分的语句。
 
例如,以下是使用 if...else 语句和 switch 语句的示例代码:
 
 if...else 语句示例:判断学生成绩等级
 

#include <stdio.h>

int main() {
    int scores = 0;
    printf("请输入学生成绩: ");
    scanf("%d", &scores);

    if (scores < 60) {
        printf("不及格!\n");
    } else if (scores < 80) {
        printf("良好!\n");
    } else if (scores <= 100) {
        printf("优秀!\n");
    } else {
        printf("输入错误!\n");
    }

    return 0;
}


switch 语句示例:根据输入的数字输出对应的星期几
 

#include <stdio.h>

int main() {
    int day = 0;
    printf("请输入一个数字(1-7): ");
    scanf("%d", &day);

    switch (day) {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;
        case 4:
            printf("星期四\n");
            break;
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期日\n");
            break;
        default:
            printf("输入错误,请输入 1 到 7 之间的数字\n");
            break;
    }

    return 0;
}

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值