当前位置: 首页 > news >正文

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

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

话不多说,开始正题~


前提回顾:

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

\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.lryc.cn/news/357592.html

相关文章:

  • ChatGPT的基本原理是什么?又该如何提高其准确性?
  • 云计算OpenStack基础
  • [10] CUDA程序性能的提升 与 流
  • TH方程学习(1)
  • 【九十七】【算法分析与设计】图论,迷宫,1207. 大臣的旅费,走出迷宫,石油采集,after与迷宫,逃离迷宫,3205. 最优配餐,路径之谜
  • 【Tools】SpringBoot工程中,对于时间属性从后端返回到前端的格式问题
  • 算法训练营day35
  • 代码随想录-Day23
  • 基于Visual Studio版本的AI编程助手
  • 04-Vue:ref获取页面节点--很简单
  • CBK-D2-安全与架构工程.md
  • Windows驱动开发系列文章一
  • java项目之人事系统源码(springboot+vue+mysql)
  • I/O '24|学习资源焕新,技术灵感升级
  • 前端应用开发实验:表单控件绑定
  • [双指针] --- 快乐数 盛最多水的容器
  • 操作系统 - 输入/输出(I/O)管理
  • 代码随想录算法训练营第22天(py)| 二叉树 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 使用C语言实现学生信息管理系统
  • 上下文视觉提示实现zero-shot分割检测及多visual-prompt改造
  • WebGL学习(一)渲染关系
  • 人生建议:向猫学习
  • 软件架构设计属性之三:结构性属性浅析
  • JAVA:多线程常见的面试题和答案
  • 短信平台-平台群发短信
  • C++:类和对象
  • JavaScript条件语句与逻辑判断:解锁代码逻辑的奥秘【含代码示例】
  • sparksql自定义函数
  • 新人开发新系统,旧人维护旧系统
  • 鸿蒙应用模型:【Stage模型开发】概述