【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 自定义日志…

【国产MCU】-CH32V307-通用同步/异步收发器(USART)

通用同步/异步收发器(USART) 文章目录 通用同步/异步收发器(USART)1、USART介绍2、USART驱动API介绍3、USART使用示例3.1 轮询方式数据发送与接收3.2 中断方式数据发送与接收3.3 DMA方式数据发送与接收CH32V307提供了3组通用同步/异步收发器(USART1、USART2、USART3),以…

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

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

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

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

MySQL数据库备份方法

一、数据库备份的分类 1.按不同维度分类 从物理与逻辑的角度&#xff0c;备份可分为 物理备份&#xff1a;对数据库操作系统的物理文件&#xff08;如数据文件、日志文件等&#xff09;的备份 物理备份方法 冷备份&#xff08;脱机备份&#xff09;&#xff1a;是在关闭数…

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

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

编程笔记 html5cssjs 075 Javascript 常量和变量

编程笔记 html5&css&js 075 Javascript 常量和变量 一、JavaScript 变量二、JavaScript 常量三、示例&#xff1a;小结&#xff1a; 在JavaScript中&#xff0c;变量和常量是用来存储数据的占位符。它们的主要区别在于可变性&#xff1a;变量的值可以改变&#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 解压压…

MySQL索引解析与B-tree工作原理

在数据库领域&#xff0c;索引是提高数据检索效率的关键。而在MySQL中&#xff0c;默认的索引方法是B-tree&#xff08;Balanced Tree&#xff09;&#xff0c;一种常见而高效的索引结构。在这篇文章中&#xff0c;我们将深入探讨MySQL的默认索引方法&#xff0c;特别关注B-tre…

关于 Rust程序设计语言-构建多线程 Web服务器 一章的一些问题

前言 最近在跟着《Rust 程序设计语言》一书学习Rust&#xff0c;在学习最后一章构建多线程 Web 服务器的最后两节时&#xff0c;我遇到了一些问题&#xff0c;并尝试进行解释&#xff0c;接下来分享给大家。 将单线程服务器变为多线程服务器 按照20.2.将单线程服务器变为多线…

Oracle常用命令

创建用户&#xff1a; create user 用户名 identified by 密码 default tablespace zhijie; grant dba,resource,connect to 用户名; CREATE OR REPLACE TYPE DOMAIN_NAMES_COLTYPE AS TABLE OF varchar2(255); CREATE OR REPLACE TYPE TYPE_SPLIT is table of varchar2(40…

刷题11 双指针

一、同向双指针 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回…

面试 JavaScript 框架八股文十问十答第二期

面试 JavaScript 框架八股文十问十答第二期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;其他值到字符串的…

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

【第一个&#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;碱趣贝果面包还…

Python爬虫某云音乐歌手及下载其免费音乐

import os import re import threading import timefrom lxml import etreeimport requests from bs4 import BeautifulSoup from database import MyDataBase from utils import make_user_agent 注意&#xff1a;database和utils是自己写的。没有注释&#xff0c;不懂就问 先…

【大厂AI课学习笔记】1.4 算法的进步(3)关于Hinton

Geoffrey Hinton&#xff1a;深度学习之父的传奇人生与杰出贡献 在人工智能领域&#xff0c;有一位科学家的名字如同星辰般闪耀&#xff0c;他就是Geoffrey Hinton。作为深度学习的奠基人之一&#xff0c;Hinton的生涯充满了创新、突破和对未知的不懈探索。他的贡献不仅重塑了…

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;精准营养学研究也成为一个快速发展的热点领域。“精准营养”研究借助多组学、可…