【C生万物】初始C语言

C语言

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!


文章目录

  • 1. C语言是什么?
  • 2. C语言的历史和辉煌
  • 3. C语言的优缺点
    • 3.1 优点:
    • 3.2 缺点:
  • 4. 第一个C语言程序
  • 5. main函数
  • 6. printf和库函数
    • 6.1 printf
    • 6.2 库函数
  • 7. 关键字的介绍
  • 8. 字符和ASCll编码
  • 9. 字符串和\0
  • 10. 转义字符
  • 11. 语句和语句的分类
    • 11.1 空语句
    • 11.2 表达式语句
    • 11.3 函数调用语句
    • 11.4 复合语句
    • 11.5 控制语句
  • 12. 注释是什么?
    • 12.1 注释有哪些方式

基本了解C语言的基础知识,对C语言有个初步的认识。

1. C语言是什么?

人与人之间的交流使用的是自然语言。如汉语,英语,日语。
人与计算机是怎么交流的呢?使用计算机语言。
目前已知已经有上千种计算机语言。人们是通过计算机语言写的程序,给计算机工作的。
C语言是一门通用的计算机编程语言,广泛用于底层开发。C语言是一门面向过程的计算机编程语言。

2. C语言的历史和辉煌

C语言最初是作为 Unix 系统的开发工具而发明的。
image.png

3. C语言的优缺点

  • C语言是一种底层语言。
  • C语言是一种小型语言。
  • C语言是一种包容性语言

3.1 优点:

  • 高效
  • 可移植性
  • 功能强大
  • 灵活
  • 标准库
  • Unix 系统集成

3.2 缺点:

  • C程序更容易隐藏错误
  • C程序可能会难以理解
  • C程序可能会难以修改

4. 第一个C语言程序

#include<stdio.h>

int main()
{
	printf("Hello C\n");
    
    return 0;
}

C语言把.c为后缀的文件称为源文件,把.h为后缀的文件称为头文件

5. main函数

每个C语言程序不管有多少行代码,都是从main函数开始执行的。main函数就是程序的入口,main函数也称为:主函数

  • main函数就是程序的入口。
  • main函数有且只有一个
  • 即使一个项目中有多个.c文件,但是只能有一个main函数(因为函数的入口只能有一个)

6. printf和库函数

6.1 printf

在第一个C程序中有一句代码如下:

printf("Hello C\n");

代码中使用了printf函数,printf是一个库函数,它的功能在标准输出设备上进行信息的打印。
注:使用printf函数需要包含的就是stdio.h这个头文件。

#include<stdio.h>

6.2 库函数

为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再有不同的编译器厂商根据标准进行实现,提供给程序员使用,这些函数组成的一个函数库,被称为标准库,这些函数也称为库函数。
一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用,要包含对应的头文件。
库函数的参考链接:https://cplusplus.com/reference/clibrary/

7. 关键字的介绍

关键字是C语言的词汇。它们对C语言而言比较特殊,不能用它们作为标识符(如:变量名)。C语言关键字也称为保留字

  • 关键字都有特殊的意义,是保留给C语言使用的
  • 创建标识符的时候是不能和关键字重复的
  • 关键也是不能自己创建的

C语言的32个关键字如下:

auto break case char const continue default do double else enum extern
float for goto if int long register return short signed sizeof stuct switch static
typedf union unsigned viod volatile while

注:在C99 标准中加入了inlin restrict _Bool _Comploex _Imaginary等关键字
C语言关键字的全部介绍链接:https://zh.cppreference.com/w/c/keyword

8. 字符和ASCll编码

在键盘上可以敲出各种字符,如:a,b,c,@,#,这些符号称为字符,C语言中字符是用单引号括起来,如:‘a’,‘#’;
在计算机中所有的数据都是以二进制形式存储的,那这些字符在内存中分别以什么样的二进制存储的呢?如果我们每个人自己给这些字符中的每个字符编一个二进制序列,这个叫做编码,为了方便大家相互通信,不造成混乱,后来美国国家标准学会(ANSII)出台一个标准的ASCll 编码,C语言中的字符就遵循ASCll编程的方式。
image.png
参考:https://zh.cppreference.com/w/cpp/language/ascii
几组特殊的数据:

  • 字符A-Z:65~90
  • 字符a-z:92~122
  • 大小写字符差值是32
  • 数字字符0-9:48~57
  • 换行\n:10

9. 字符串和\0

C语言中如何表示字符串呢?使用双引号括起来的一串字符就被称为字符串,如:“大佬互三互关”,就是一个字符串。
字符串的打印格式可以使用%s来指定,也可以直接打印如下:

#include<stdio.h>

int main()
{
    printf("%s","大佬互关");
    printf("大佬互关");

    return 0;
}

C语言字符串中一个特殊的知识,就是字符串的末尾隐藏放着一个\0字符,这个\0字符就是字符串的结束标志,不做字符串内容。

10. 转义字符

转义字符顾名思义:转变原来的意思的字符。

转义字符释义
\?在书写连续多个问号时使用,防止它们被解析成三字母词
\’用于表示字符常量’
\"用于表示字符常量"
\\用于表示字符常量\
\a警告字符,蜂鸣
\b退格符
\f换页符
\n换行符
\r回车
\t水平制表符
\v垂直制表符

下面2种转义字符可以理解为:字符的8进制或者16进制表示形式

\dddd d d表示1~3个八进制数字如:\130 表示字符X
\xddd d 表示2个十六进制数字如:\x30 表示字符0

参考:https://zh.cppreference.com/w/c/language/escape

11. 语句和语句的分类

C语言的代码是由一条条的语句构成的,C语言中的语句可分为以下五类:

  • 空语句
  • 表达式语句
  • 函数调用语句
  • 复合语句
  • 控制语句

11.1 空语句

空语句最简单,一个分号就是一条语句,是空语句。

#include<stdio.h>

int main()
{
	;//空语句
    
    return 0;
}

空语句,一般出现的地方是:这里需要一条语句,但是这个语句不需要做任何是,就是可以写一个空语句。

11.2 表达式语句

表达式语句就是在表达式的后边加上分号。如下:

#include<stdio.h>

int main()
{
	int a = 20;
    int b = 0;
    b = a + 5;//表达式语句
    
    return 0;
}

11.3 函数调用语句

函数调用的时候,也会加上分号,就是函数调用语句。如下:

#include<stdio.h>

int Add(int x, int y)
{
    return x + y;
}

int main()
{
	int ret = Add(2,3);//函数调用语句
    printf("%d\n",ret);
    
    return 0;
}

11.4 复合语句

复合语句其实就是代码块,成对括号的代码就构成一个代码块,也称为复合语句

#include<stdio.h>

void print(int arr[], int sz) // 函数大括号中代码也构成复合语句
{
    int i = 0;
    for(i=0; i<sz;i++)
    {
        printf("%d",arr[i]);
    }
}

int main()
{
    int i = 0;
    int arr[10] = {0};
    for(i=0; i<10; i++)
    {
        arr[i] = 10-i;
        printf("%d\n",arr[i]);
    }
    
    return 0;
}

11.5 控制语句

控制语句用于控制程序的执行流程,以实习程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

  1. 条件判断语句也叫分支语句if语句、switch语句
  2. 循环执行语句do while语句、while语句、for语句
  3. 转向语句break语句、goto语句、continue语句、return语句

12. 注释是什么?

注释是写程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的

12.1 注释有哪些方式

  • 多行注释:/**/
  • 单行注释://
#include<stdio.h>

int main()
{
    /*
        这是个多行注释
	*/

    // 这是个单行注释

    return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369112.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

合并分支rebase和merge的区别

文章目录 一、前言1.1、master分支1.2、dev分支 二、合并2.1、git merge2.2、git rebase 三、总结四、最后 一、前言 实际开发工作的时候&#xff0c;我们都是在自己的分支开发&#xff0c;然后将自己的分合并到主分支&#xff0c;那合并分支用2种操作&#xff0c;这2种操作有…

maven项目管理工具安装和配置

文章目录 1.1 软件下载安装1.1.2 软件安装 1.2 软件配置1.2.1 软件环境配置1.2.2 软件版本测试1.2.3 maven 配置1.2.3.1 仓库配置1.2.3.2 镜像配置1.2.3.3 配置 JDK 1.3 IDEA 结合 Maven 使用 1.1 软件下载安装 首先我们需要去 Maven 官方下载安装软件&#xff0c;本文使用的是…

【深度测试】看到技术方案后,该怎么进行分析和测试

测试左移的思想&#xff0c;讲究尽早测试&#xff0c;测试是一系列的行为&#xff0c;并不一定要等代码运行起来才能测&#xff0c;下面会分享一些经验&#xff0c;提供大家参考。 一、静态分析 1.1 分析方法调用链 目标&#xff1a;梳理结构&#xff0c;化繁为简 原理&#…

Qt多语言翻译

Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制&#xff0c;其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中&#xff0c;然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译…

springboot153相亲网站

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

在WORD中设置公式居中编号右对齐设置方式

1 软件环境 Office Microsoft Office LTSC 专业增强版2021 2 最终效果 3 操作步骤 编辑公式&#xff1b;光标定位到公式的最后&#xff08;不是行的最后&#xff09;&#xff1b;输入#编号光标定位在公式最后&#xff08;不是行的最后&#xff09;&#xff0c;按Enter键回车…

【Linux系统 01】Vim工具

目录 一、Vim概述 1. 文件打开方式 2. 模式切换 二、命令模式 1. 移动与跳转 2. 复制与粘贴 3. 剪切与撤销 三、编辑模式 1. 插入 2. 替换 四、末行模式 1. 保存与退出 2. 查找与替换 3. 分屏显示 4. 命令执行 一、Vim概述 1. 文件打开方式 vim 文件路径&#…

【CSS】css获取子元素的父元素,即通过子元素选择父元素(使用CSS伪类 :has() :not() )

这里写目录标题 一、:has获取第一个div获取包含 a.active 的 li获取第二个div 二、:not除了类名为active 的 a,其他的a的字体都为18px <div><h1>标题</h1></div><div><ul><li><a href"#" class"active">测…

Filter与Listener(Java Web)

Filter与Listener(Java Web) 概念&#xff1a;Filter表示过滤器&#xff0c;是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。过滤器一般完成一些通用的操作&#xff0c;比如&#xff1a;权限控制、…

mysql按周统计数据简述

概述 业务中经常会遇到按年月日统计的场景&#xff1b; 但有时会有按周统计的情况&#xff1b; 我一般是用2中方法去解决&#xff1a; 利用mysql的weekday函数。计算出当前日期是一周中的第几天&#xff0c;然后当前日期 - 这个数值&#xff0c;就可以得到当前周的周一的日期…

Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】

文章目录 Seaborn库常用绘图详解与实战引言安装与导入一、散点图参数说明实战案例 二、直方图参数说明实战案例 三、线性关系图参数说明实战案例 四、热力图参数说明实战案例 五、分布图参数说明实战案例 六、箱线图参数说明实战案例 七、联合分布图参数说明实战案例 八、小提琴…

钓鱼攻击:深度解析与防范策略

一、引言 在当今的网络世界中&#xff0c;钓鱼攻击已经成为一种日益猖獗的威胁。这种攻击方式利用电子邮件、社交媒体或其他在线平台&#xff0c;伪装成可信赖的来源&#xff0c;诱导受害者点击恶意链接或下载恶意附件&#xff0c;进而窃取个人信息或实施其他恶意行为。本文将…

[SWPUCTF 2021 新生赛]easyupload2.0

一开始我通过cobaltstrike写一个文件上传的木马它不允许上传php文件 我这边写了一句话木马通过burp拦截修改后缀为phtml然后通过蚁剑找flag

centos7安装oracle

1 安装虚拟机 设置4G内存&#xff0c;硬盘40G 2 配置网络环境 2.1配置主机名 # vi /etc/hostname 修改为 oracle2.2 配置IP地址 # vi /etc/sysconfig/network-scripts/ifcfg-ens33 修改 BOOTPROTO"static" ONBOOT"yes" IPADDR192.168.109.110 NETMAS…

政安晨:示例演绎Python的函数与获取帮助的方法

调用函数和定义我们自己的函数&#xff0c;并使用Python内置的文档&#xff0c;是成为一位Pythoner的开始。 通过我的上篇文章&#xff0c;相信您已经看过并使用了print和abs等函数。但是Python还有许多其他函数&#xff0c;并且定义自己的函数是Python编程的重要部分。 在本…

027 方法的定义及调用

方法的定义 方法调用 设计方法的原则 使用场景 想象一下有个场景需要我们不断频繁地去使用某部分特定的代码&#xff0c;我们自然可以通过复制粘贴去完成&#xff0c;但是这样会导致代码又臭又长&#xff0c;大部分是重复的代码&#xff0c;这不利于我们后续的维护&#xff0c;…

一键转换MOV至MP3:轻松删除原视频,释放存储空间!

你是否曾经有一个MOV格式的视频文件&#xff0c;想要提取其中的音频却苦于没有合适的工具&#xff1f;现在&#xff0c;有了我们的全新视频剪辑工具&#xff0c;这个烦恼全部消失&#xff01;我们为你提供一键式解决方案&#xff0c;将MOV视频文件快速转换为MP3音频格式。 首先…

tidb节点重启后,服务无法重连

大家好&#xff0c;我是烤鸭&#xff1a; 前几天遇到tidb节点重启后服务无法重连&#xff0c;确切地说是两个服务&#xff0c;一个可以正常重连&#xff0c;一个不行。 问题复现 由于线上执行慢SQL&#xff0c;导致TiDB 单个节点宕机重启。 其中A服务的3个节点和B服务的1个节…

电商实战练习部署

基于阿里云ECS服务器实战部署 1 单架构部署方案 1.1 部署流程 传统方案 基于docker 2 持续集成&持续部署方案 随着软件开发复杂度的不断提高&#xff0c;团队开发成员间如何更好地协同工作以确保软件 开发的质量已经慢慢成为开发过程中不可回避的问题。互联网软件的开发…

153基于matlab的滚动轴承故障诊断

基于matlab的滚动轴承故障诊断&#xff0c;基于小波包分解&#xff0c;得到数据峭度值&#xff0c;以正常与故障数据峭度差值进行最大尺度重构&#xff0c;对重构信号进行包络谱分析。程序已调通&#xff0c;可直接运行。 153matlab 信号重构 包络谱分析 故障诊断 (xiaohongshu…