0基础认识C语言(理论+实操 2)

news/2024/10/20 21:28:40/

小伙伴们大家好,今天也要撸起袖子加油干!万事开头难,越学到后面越轻松~

话不多说,开始正题~


前提回顾:

        接上次博客,我们学到了转义字符,最后留下两个转义字符不知道大家有没有动手尝试了一遍,在这里给大家演示一遍

\ddd            表示 1~3 个八进制的数字

\xdd            表示 2 个十六进制的数字

#include <stdio.h>
int main()
{printf("%c", '\123');/*这里由于是八进制 \123 输出的结果应该为83所对应的ASCII码为S3 * (8**0) + 2 * (8**1) + 1 * (8**2) == 83  【该行为83的计算过程】 */return 0;
}
#include <stdio.h>
int main()
{printf("%c", '\x23');/*这里由于是十六进制 \x23 输出的结果应该为35所对应的ASCII码为#3 * (16**0) + 2 * (16**1)  == 35 【该行为35的计算过程】 */return 0;
}

ASCII表如下图,大家可以试着找找,看输出结果是否一致 

 

恭喜大家攻克上次遗留的问题

下面我们正式进入今天的话题


 一、关于 strlen 与转义字符之间的小陷阱

首先 strlen 的作用是计算字符串的长度

然后你尝试了一行代码如下:

#include <stdio.h>
int main()
{printf("%zd",strlen("\\ta\11"));return 0;
}

当你信心满满本以为会输出 7 的时候,殊不知,你已经走入了陷阱 

当结果输出 4 的时候,你充满了震撼,what???

这个时候为什么会是 4 呢?大家还记得前面的转义字符吗?转义字符的长度是为1的

这个时候你恍然大悟,找到两个转义字符 \\  \11  ,终于理解了为什么输出了 4 

二、C语言的五种语句

空语句:单纯一个分号就是一个空语句

表达式语句:   表达式+;

函数调用语句:写出一个函数的时候我们一般会调用函数,这条语句是函数调用语句

复合语句:就是括号里面的语句一起组成

控制语句:是控制程序流程的语句,一般用来实现三种结构(顺序结构,选择结构,循环结构)

三、四种数据类型

基本类型          整型                   int

                        浮点型                float

                                                   double

                        字符类型             char


构造类型          数组类型

                        结构体类型

                        联合体类型

                        枚举类型


指针类型


空类型 

1.布尔类型(Bool)

介绍一个布尔类型,算是 int 子型,是专门用来创建真 / 假,一般我们也可以用 0 表示假,1表示真

首先布尔类型要包含头文件  #include <stdbool.h>

其次布尔类型只能有两种情况 true 或者 faulse 

用法为 _Bool = true / faulse;

2.数据类型大小

先让大家了解一下计算机中的单位,首先计算机中有二进制位分别是 0 和 1,一个 bit 可以存放1个二进制位,基本换算如下:

1 Byte = 8 bit

1 KB = 1024 Byte

1 MB =1024 KB 

1 GB = 1024 MB

1 TB = 1024 GB

1 PB = 1024 TB

PS:Byte 叫做字节

这个时候我们以字节为单位来看看数据类型的大小:

数据类型          字节大小                                           代码  

char                        1                                printf("%zd\n",sizeof(char));

bool                        1                                printf("%zd\n",sizeof(_Bool));

int                           4                                printf("%zd\n",sizeof(int));

short                       2                                printf("%zd\n",sizeof(short));

long                        4                                printf("%zd\n",sizeof(long));

long long                8                                printf("%zd\n",sizeof(long long));

float                        4                                printf("%zd\n",sizeof(float));

double                    8                                printf("%zd\n",sizeof(double));

long double            8                                printf("%zd\n",sizeof(long double));

 PS: sizeof 并不会计算表达式

3. signed & unsigned

signed                有符号

unsigned            无符号

我们举个例子来了解一下:

signed int n;                有符号整型,可以存放正整数和负整数

unsigned int n;            无符号整型,只能存放正数,范围更大

而我们一般写的 int n; 就是省略了 signed 

4.局部变量和全局变量

这个大家就记住括号里面的一般是局部变量,括号外面是全局变量

当局部变量和全局变量名字相同时,局部变量优先使用


好啦,今天内容就到这里啦~

大家要多上手实操,加油!


http://www.ppmy.cn/news/1464914.html

相关文章

开源一个工厂常用的LIMS系统

Senaite是一款强大且可靠的基于Web的LIMS/LIS系统&#xff0c;采用Python编写&#xff0c;构建在Plone CMS基础架构之上。该系统处于积极开发阶段&#xff0c;在灵活的定制空间中为开发人员提供了丰富的功能。其中&#xff0c;Senaite在处理REST的JSON API上做得出色&#xff0…

STM32实验之USART串口发送+接受数据(二进制/HEX/文本)

涉及三个实验&#xff1a; 1.USART串口发送和接收数据 我们使用的是将串口封装成为一个Serial.c模块.其中包含了 void Serial_Init(void);//串口初始化 void Serial_SendByte(uint8_t Byte);//串口发送一个字节 void Serial_SendArray(uint8_t *Array,uint16_t Length);//…

【408真题】2009-27

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

在Go语言中如何实现变参函数和函数选项模式

在Go语言编程中,我们经常会遇到需要给函数传递可选参数的情况。传统的做法是定义一个结构体,将所有可选参数作为结构体字段,然后在调用函数时创建该结构体的实例并传递。这种方式虽然可行,但是当可选参数较多时,创建结构体实例的代码就会变得冗长และ不太直观。 Go语言的一个…

随机链表的复制

后插节点解答 实现目标&#xff0c;要将复杂问题拆解为较为解决的较小问题进行逐步解决。可以将要复制的链表分为节点插入到每个原链表的节点后面&#xff0c;如图所示&#xff1a; 1.插入复制节点 想要实现如图所示效果&#xff0c;首先用malloc创建节点&#xff0c;然…

Textual for Mac:轻量级IRC客户端

在寻找一款高效、轻量级的IRC客户端时&#xff0c;Textual for Mac无疑是你的不二之选。它集成了众多现代技术&#xff0c;如本机IPv6、最新的IRCv3规范&#xff0c;以及客户端证书身份验证&#xff0c;让你的聊天体验更加顺畅和安全。 Textual for Mac v7.2.2免激活版下载 Tex…

python生成词云图

生成词云图的话需要先对数据进行分词处理 , 分词方法点击查看 import pandas as pd from collections import Counter from wordcloud import WordCloud import matplotlib.pyplot as plt# 假设您已经按照之前的步骤处理了数据&#xff0c;并且处理后的数据保存在comments_proc…

linux 常用命令:find grep ps netstat sudo df du rm

rm 命令 删除 -r 是递归参数&#xff08;recursive&#xff09;&#xff0c;用于删除目录及其内容。如果不加这个参数&#xff0c;rm 命令无法删除非空目录。-f 是强制参数&#xff08;force&#xff09;&#xff0c;用于强制删除文件或目录&#xff0c;不会进行任何确认提示…