【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;
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微服务】skywalking自定义链路追踪与日志采集

目录 一、前言 二、自定义链路追踪简介 2.1 自定义链路追踪应用场景 2.2 链路追踪几个关键概念 三、skywalking 自定义链路追踪实现 3.1 环境准备 3.2 集成过程 3.2.1 导入核心依赖 3.2.2 几个常用注解 3.2.3 方法集成 3.2.4 上报追踪信息 四、skywalking 自定义日志…

如何从 iPhone 上恢复永久删除的照片

您的 iPhone 上缺少照片吗&#xff1f;讽刺的是&#xff0c;iPhone 的许多高级功能可能正是这个问题如此普遍的原因。幸运的是&#xff0c;还有很多方法可以从 iPhone 恢复已删除的照片&#xff0c;具体取决于您设备的设置方式。 本文涵盖了所有这些内容。该过程根据您的具体情…

微信公众号迁移公证书怎么办?

公众号迁移有什么作用&#xff1f;只能变更主体吗&#xff1f;公众号迁移的作用可不止是变更主体哦&#xff01;还可以把原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移到新的公众号上。这样一来&#xff0c;你就可以实现公众号的公司主体变更、粉丝转移、开通留言…

使用maven对springboot项目进行瘦身分离jar的多种处理方案

文章目录 前言一、方案一&#xff08;修改自带的spring-boot-maven-plugin插件&#xff09;二、方案二&#xff08;使用spring-boot-thin-maven-plugin插件&#xff09;总结 前言 springboot项目打包一般我们都使用它自带的spring-boot-maven-plugin插件&#xff0c;这个插件默…

大数据本地环境搭建03-Spark搭建

需要提前部署好 Zookeeper/Hadoop/Hive 环境 1 Local模式 1.1 上传压缩包 下载链接 链接&#xff1a;https://pan.baidu.com/s/1rLq39ddxh7np7JKiuRAhDA?pwde20h 提取码&#xff1a;e20h 将spark-3.1.2-bin-hadoop3.2.tar.gz压缩包到node1下的/export/server目录 1.2 解压压…

两个重要极限【高数笔记】

【第一个&#xff1a;lim &#xff08;sinx / x&#xff09; 1, x -- > 0】 1.本质&#xff1a; lim &#xff08;sin‘&#xff1f;’ / ‘&#xff1f;’&#xff09; 1, ‘&#xff1f;’ -- > 0&#xff1b;保证‘&#xff1f;’ -- > 0,与趋向无关 2.例题&#x…

【ELK】logstash快速入门

1.概述 1.1.什么是logstash&#xff1f; 之前我们聊了es&#xff0c;并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的&#xff0c;然后结合kibana对日志做一些可视化的工作。既然要收集日志&#xff0c;就面临着一个问题&#xff1a; 各个系统的…

口味多样的碱水贝果面包,香气饱满松松软软

这两天在吃一款碱趣贝果面包&#xff0c;感觉味道很不错&#xff0c;它是一种加热一下就可以吃的手工面包&#xff0c;口感十分独特。这款面包有着清香有韧性的表皮&#xff0c;里面松软可口&#xff0c;加热后更是香气四溢。 除了标准的原味全麦之外&#xff0c;碱趣贝果面包还…

SpringBoot数据访问复习

SpringBoot数据访问复习 数据访问准备 引入jdbc所需要的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency> 原理分析 导入的启动器引入了两个…

【年度盛会征稿】第二届全国精准营养与生命健康创新大会(PNHIC 2024)

第二届全国精准营养与生命健康创新大会&#xff08;PNHIC 2024&#xff09; 【高层次专家齐聚交流&#xff0c;年度盛会&#xff01;】 近年来&#xff0c;人们对营养与健康愈加关注&#xff0c;精准营养学研究也成为一个快速发展的热点领域。“精准营养”研究借助多组学、可…

MySQL进阶45讲【13】为什么表数据删掉一半,表文件大小不变?

1 前言 有些小伙伴在删数据库数据时&#xff0c;会产生一个疑问&#xff0c;我的数据库占用空间大&#xff0c;我把一个最大的表删掉了一半的数据&#xff0c;怎么表文件的大小还是没变&#xff1f; 那么这篇文章&#xff0c;就介绍一下数据库表的空间回收&#xff0c;看看如…

如何把vue项目打包成桌面程序 electron-builder

引入 我们想要把我们写的vue项目,打包成桌面程序&#xff0c;我们需要使用electron-builder这个库 如何使用 首先添加打包工具 vue add electron-builder 选择最新版本 下载完毕 我们可以看到我们的package.json中多了几行 electron:build&#xff1a;打包我们的可执行程序 e…

在 iOS 上安装自定企业级应用

了解如何安装您的组织创建的自定应用并为其建立信任。 本文适用于学校、企业或其他组织的系统管理员。 您的组织可以使用 Apple Developer Enterprise Program 创建和分发企业专用的 iOS 应用&#xff0c;以供内部使用。您必须先针对这些应用建立信任后&#xff0c;才能将其打…

服装品牌如何利用数字化工具提升商品管理效率

随着科技的快速发展&#xff0c;数字化工具在商品管理中的应用越来越广泛。数字化工具不仅可以提高商品管理的效率&#xff0c;还可以帮助企业更好地满足客户需求&#xff0c;提升市场竞争力。本文将探讨如何利用数字化工具提升商品管理效率。 一、建立数字化管理系统 数字化…

备战蓝桥杯---搜索(应用基础1)

话不多说&#xff0c;直接看题&#xff1a; 显然&#xff0c;我们直接用深搜&#xff0c;我们可以先把空位用结构体存&#xff0c;然后打表存小方块&#xff0c;再用数组存行列。 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int a[12][12];…

linux中的gdb调试

gdb是在程序运行的结果与预期不符合时&#xff0c;可以使用gdb进行调试 注意&#xff1a;使用gdb调试时要在编译上加-g参数 gcc -g -c hello.c 启动gdb调试&#xff1a; gdb file 对gdb进行调试 设置运行参数&#xff1a; set args 可指定运行参数 show args 可以查…

uniapp基于Android的环境保护环保商城系统生活垃圾分类 小程序_rsj68

本环境保护生活App是为了提高用户查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了用户和管理员这两者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;尽可能优化界面…

WPF布局面板

StackPanel StackPanel 是一种常用的布局控件,可以支持水平或垂直排列,但不会换行。当子元素添加到 StackPanel 中时,它们将按照添加的顺序依次排列。默认情况下,StackPanel 的排列方向是垂直的,即子元素将从上到下依次排列。可以使用 Orientation 属性更改排列方向。可以…

Apache POI与easyExcel:Excel文件导入导出的技术深度分析

在处理Excel文件时&#xff0c;Java开发者经常会面临多种选择&#xff0c;其中Apache POI和easyExcel是两个非常受欢迎的选择。这两个库都提供了强大的Excel文件处理功能&#xff0c;但在性能、内存使用、API设计以及扩展性方面有所不同。本文将深入分析Apache POI和easyExcel在…

Unity 通过配置文件生成代码

文章目录 示例1&#xff1a;基于ScriptableObject的配置生成类示例2&#xff1a;预制体路径列表生成加载代码示例3&#xff1a;动画剪辑生成动画控制器片段示例4&#xff1a;Excel配置表生成序列化类示例5&#xff1a;UI元素及其事件绑定生成代码 在Unity编辑器模式下&#xff…