C语言入门这一篇就够了(入门篇2)

接上篇C语言入门这一篇就够了(入门篇1)

今天主要讲解基本语法,话不多说,直接上干货。

C语言语法有哪些

  1. 数据类型:C语言有多种数据类型,包括整数类型(如 int、long)、浮点类型(如 float、double)、字符类型(如 char)以及结构体类型等。

  2. 变量和常量:在C语言中,变量用于存储数据,常量用于表示固定的值。变量需要先定义后使用,而常量在程序运行过程中不能被改变。

  3. 运算符:C语言有多种运算符,包括算术运算符(如 +、-、*、/)、比较运算符(如 <、>、==、!=)、逻辑运算符(如 &&、||)以及位运算符等。

  4. 控制结构:C语言提供了多种控制结构,包括顺序结构、选择结构(如 if语句、switch语句)和循环结构(如 for循环、while循环、do-while循环)。

  5. 函数:函数是C语言的基本组成单位,用于封装和复用代码。函数由函数名、参数列表和函数体组成。

  6. 指针:指针是C语言的一个重要概念,它是一个变量,存储的是另一个变量的地址。通过指针可以实现对变量的间接访问。

  7. 预处理器指令:预处理器指令用于在编译之前修改源代码,如 #define、#include 等。

  8. 内存管理:C语言提供了动态内存分配函数(如 malloc()、calloc()、free())用于分配和释放内存。

  9. 错误处理:C语言提供了一些错误处理机制,如errno和perror() 函数。

    重点:掌握这些语法是编写和理解C程序的关键。

‍C语言语法还有哪些特点?‍

C语言语法的特点包括:

  1. 简洁紧凑、灵活方便:C语言只有32个关键字和9种控制语句,程序书写自由,主要用小写字母表示。

  2. 运算符丰富:C的运算符包含范围广泛,共有34个运算符。

  3. 数据结构丰富:C的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算。

  4. 是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

  5. 语法限制不太严格、程序设计自由度大:一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。

‍C语言中的变量‍

先介绍一下8种数据类型

char(1byte)字符型

short(2byte)短整型

long(4byte)长整型

int(4byte)整型

float(4byte)单精度浮点型

double(8byte)双精度浮点型

signed(4byte)有符号

unsigned(4byte)无符号

上面所占空间大小是在32位系统上,不同平台有所不同,具体的使用sizeof计算

C语言变量名的命名规则

标识符命名基本规则

1.由一个或多个字母、数字或下划线组成

2.第一个字符必须是字母或下划线

3.不能与任何关键字相同

一般规则

1.见名知义,采用英文单词组合,不要出现拼音

2.命名的长度应当符合“min-length && max-information”原则

3.尽量避免名字中出现数字编号,如 Value1,Value2 等。

4.C语言严格区分大小写,注意类似x和X

1(数字 1)和 l(小写字母 l)之间,0(数字 0)和 o(小写字母 o)之间的区别

5.宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。

C语言中的常量

字面常量

字面常量是直接写出的固定值,它包含C语言中可用的数据类型,可分为整型常量,字符常量等。如:9.9,“hello”等就属于这一类常量。

##const修饰的常变量

有的时候我们希望定义这么一种变量:值不能被修改,在整个作用域中都维持原值。为了满足用户需求,C语言标准提供了const关键字。在定义变量的同时,在变量名之前加上const修饰。如下所示:

36f9ca25627ac3a4b899635be6e8a216.png

  • const修饰的常变量,本质上是变量。

  • 但具有常属性,不能被修改。

5860c405076008e0a26b808e830494b3.png

关于上述n的使用,需要说明的是:在C99标准之前,数组的大小只能是常量修饰,不支持变长数组。

#define定义的标识符常量

C语言提供了***#define***命令定义标识符常量,该标识符常量在程序中是个定值,通常用于代表数组容量或涉及数学的常量等。如:

8eb317983cc34d2cf331cd3640f61475.png

如需修改数组大小,只需将SIZE所代表的值修改即可,十分方便。

枚举常量

日常生活中有一些代表实际意义的常量,有这么一个特点:数值较小且为非负整数。如一周有7天等。C语言提供了一种枚举(Enum)类型,能够列出所有可能会用到的取值,并给它们取一个名字。

2278fdd50d21fb324d3f89f764d7a739.png

在使用枚举常量的时候,需要注意以下几点:

  • 不能对枚举常量赋值,只能将它们的值赋给其他的变量。

  • 不能再定义与枚举常量名字相同的变量。

  • 不能用&取得它们的地址。

C语言的运算符和表达式

  1. 算术运算符:用于进行算术运算,包括加(+)、减(-)、乘(*)、除(/)和取模(%)。

    90abd6b4cecbc0a2134cc4a01c562e01.png

  2. 赋值运算符:用于将右侧表达式的值赋给左侧变量。赋值运算符包括等于(=)、加等于(+=)、减等于(-=)、乘等于(*=)和除等于(/=)。

    400ece47eba3182c05bdb2a81af718df.png

  3. 比较运算符:用于比较两个值的大小关系,包括等于(==)、不等于(!=)、大于(>)、小于(<)和大于等于(>=)小于等于(<=)。

    4caa9a94f6502a70177a2630006eed9b.png

  4. 逻辑运算符:用于进行逻辑运算,包括与(&&)、或(||)和非(!)。

    8e4062f8b55d97558300a73a4837f5b6.png

C语言的语句

C语言的语句(Statement)是构成程序的基本单位,用于表达程序的一个操作或动作。C语言的语句包括以下几种类型:

  1. 赋值语句(Assignment Statement):用于给变量赋值,语法为“变量 = 值”。
    例如:int a = 10;

  2. 条件语句(Conditional Statement):用于根据条件执行不同的代码块,语法为“if (条件) { 代码块 }”。
    例如:if (a > b) { printf("a 大于 b"); }

  3. 循环语句(Loop Statement):用于重复执行一段代码,语法为“while (条件) { 代码块 }”。
    例如:while (a < b) { printf("a 小于 b"); }

  4. 跳转语句(Jump Statement):用于控制程序的流程,如无条件跳转、返回函数等。
    例如:goto label; // 无条件跳转到标签位置
    return 0; // 返回函数并返回值0

  5. 表达式语句(Expression Statement):用于计算表达式的值,语法为“表达式;”。
    例如:a++; // 递增变量a的值

  6. 复合语句(Compound Statement):由多个语句组成的语句块,语法为“{ 语句1; 语句2; ... }”。
    例如:{ printf("Hello"); printf("World"); } // 输出"HelloWorld"

  7. 空语句(Null Statement):只有一个分号的语句,表示不执行任何操作。
    例如:; // 空语句

C语言的条件语句

C语言中的条件语句是用于根据条件执行不同代码块的语句。它通常使用if关键字来标识

8feca888ce72199c3443f220569e14c1.png

其中,条件是一个表达式,其结果为真或假。如果条件的结果为真,则执行if语句后面的代码块;否则,跳过该代码块。

例如,下面的代码使用if语句判断一个数是否大于10:

a280c88eabc5fd497b69abd725288d76.png

在上面的代码中,num > 10是一个条件表达式,其结果为真。因此,会执行if语句后面的代码块,输出"num 大于 10"。

除了基本的if语句外,C语言还支持多种条件语句的变体,例如if...else语句、else if语句和switch语句等。这些语句有不懂的可以后台私信我。

C语言循环语句

C语言提供了几种循环语句,包括for循环、while循环和do...while循环。这些循环语句用于重复执行一段代码,直到满足特定的条件。

1.for循环:for循环通常用于需要执行固定次数的循环操作。

6aa8ed77bfdb75301435c36e20f8e676.png

6d38d6cda7ebedc62a5cda9b3b4b979c.png

2.while循环:while循环通常用于需要反复执行一段代码,直到满足某个条件。

52fbfb7a0d6160303700bf4f5ba4c9ec.png

3.do...while循环:do...while循环与while循环类似,但是它会先执行一次循环体,然后再检查条件表达式。

363bef416d02abf91983234f1266b4e5.png

C语言函数

C语言函数是一种可重用的代码块,它可以被程序中的其他部分调用。一个函数可以有输入参数,并且可以返回一个值。

以下是一个简单的C语言函数的示例:

0f6aecce3240fd1d084ba205a628ffaa.png

在这个例子中,add()是一个函数,它接受两个整数作为输入参数,并返回它们的和。在main()函数中,我们声明了一个变量result,然后调用add()函数并将结果存储在result中。最后,我们打印出结果。

注意,在C语言中,函数必须在调用之前声明或定义。在这个例子中,我们在main()函数之前声明了add()函数,然后在main()函数之后定义了它。

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

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

相关文章

移动机器人路径规划(二)--- 图搜索基础,Dijkstra,A*,JPS

目录 1 图搜索基础 1.1 机器人规划的配置空间 Configuration Space 1.2 图搜索算法的基本概念 1.3 启发式的搜索算法 Heuristic search 2 A* Dijkstra算法 2.1 Dijkstra算法 2.2 A*&&Weighted A*算法 2.3 A* 算法的工程实践中的应用 3 JPS 1 图搜索基础 1.1…

Mysql中的JDBC编程

JDBC编程 1.JDBC的数据库编程2.JDBC工作原理3.JDBC使用3.1JDBC开发案例3.2JDBC使用步骤总结 4.JDBC API4.1数据库连接Connection4.2 Statement对象4.3 ResultSet对象4.4 释放 5.Java代码操作数据库 1.JDBC的数据库编程 JDBC&#xff0c;即Java Database Connectivity&#xff0…

20 - 欲知JVM调优先了解JVM内存模型

从今天开始&#xff0c;我将和你一起探讨 Java 虚拟机&#xff08;JVM&#xff09;的性能调优。JVM 算是面试中的高频问题了&#xff0c;通常情况下总会有人问到&#xff1a;请你讲解下 JVM 的内存模型&#xff0c;JVM 的性能调优做过吗&#xff1f; 1、为什么 JVM 在 Java 中…

springboot--单元测试

单元测试 前言1、写测试要用的类2、写测试要用的类3、运行测试类4、spring-boot-starter-test默认提供了以下库4.1 junit54.1.1 DisplayName:为测试类或者测试方法设置展示名称4.1.2 BeforeAll&#xff1a;所有测试方法运行之前先运行这个4.1.3 BeforeEach&#xff1a;每个测试…

编码自动化:使用MybatisX初体验,太爽了!

使用Mybatis当前最火的插件&#xff1a;MybatisX。 在IDEA中安装MyBatisX插件。 该插件主要功能如下&#xff1a; 生成mapper xml文件 快速从代码跳转到mapper及从mapper返回代码 mybatis自动补全及语法错误提示 集成mybatis Generate GUI界面 根据数据库注解&#xff0c;…

win11无损关闭系统更新

1、窗口键R&#xff0c;打开运行窗口&#xff0c;输入regedit。 2、打开地址&#xff1a;计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 3、新建DWORD&#xff08;32位&#xff09;值(D)&#xff0c;重命名“FlightSettingsMaxPauseDays” 4、…

MacBook投屏到安卓电视的操作步骤,用网页浏览器也能投屏

如果你想将苹果电脑投屏到家里的安卓大电视上&#xff0c;AirDroid Cast给你提供两种方法&#xff0c;其中一种就是大家都熟悉的AirPlay&#xff0c;AirPlay有个限制&#xff0c;需要连接同一个网络才可以投屏&#xff0c;所以AirPlay适应本地投屏。如果你需要远程投屏&#xf…

通信原理板块——利用香农公式对连续信道的信道容量计算

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 利用香农公式对连续信道的信道容量…

JS-项目实战-编辑单价单元格,可以点击单价单元格并且出现文本框,并自动选中输入框内部的文本

1、鼠标悬浮和离开事件.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格…

java 自定义收款二维码,使用图片融合,自定义文字

1, 输出 原图资源 : 下载原图, CSDN 下载, 无需积分 模版 底图 768 x 1299 二维码 527*527 2 代码 import javax.imageio.ImageIO; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.image.BufferedImage; import java.io.File; import java.…

基于STC12C5A60S2系列1T 8051单片机的SPI总线器件数模芯片TLC5615实现数模转换应用

基于STC12C5A60S2系列1T 8051单片的SPI总线器件数模芯片TLC5615实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍SPI总线器件数模芯片TLC5615介绍通过按…

第十五届全国大学生数学竞赛初赛试卷解析

参加了此次比赛&#xff0c;收获很多&#xff0c;两个半小时让我体会到了很多&#xff0c;所以想做个总结 第十五届全国大学生数学竞赛初赛试题 &#xff08;非数学A类,2023年&#xff09; 下面是答案解析&#xff0c;有兴趣的小伙伴可以做完对照一下。 直接使用洛必…

ClassLoader

Java /Android 默认ClassLoader是PathClassLoader Android 的 PathClassLoader 和DexClassLoader 都是BaseDexClassLoader的子类 BaseClassLoader是ClassLoader的子类,通过loadClass方法加载,Android将Java的ClassLoader简化了,第二个参数arg2 无效 loadClass 通过 findLoad…

050-第三代软件开发-软件部署脚本(二)

第三代软件开发-软件部署脚本(二) 文章目录 第三代软件开发-软件部署脚本(二)项目介绍软件部署脚本(二) 关键字&#xff1a; Qt、 Qml、 bash、 shell、 脚本 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Languag…

C语言从入门到精通之【基本运算符】

赋值运算符 在C语言中&#xff0c;并不意味着“相等”&#xff0c;而是一个赋值运算符。下面的赋值表达式语句&#xff1a; bmw 2002; 把值2002赋给变量bmw。也就是说&#xff0c;号左侧是一个变量名&#xff0c;右侧是赋给该变量的值。符号被称为赋值运算符。另外&#xff0…

用友GRP-U8 ReturnForWcp RCE漏洞复现

0x01 产品简介 用友GRP-U8内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8内控管理软件/servlet/PayReturnForWcp接口处存在xxe漏洞&#xff0c;攻击者可利用xxe…

Redis配置、Redis类型

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

sklearn笔记:neighbors.NearestNeighbors

1 最近邻 class sklearn.neighbors.NearestNeighbors(*, n_neighbors5, radius1.0, algorithmauto, leaf_size30, metricminkowski, p2, metric_paramsNone, n_jobsNone)邻居搜索算法的选择通过关键字 algorithm 控制&#xff0c;它必须是 [auto, ball_tree, kd_tree, brute] …

图像格式导致halcon读取失败

图像格式&#xff1a; JPEG (jpg)&#xff0c;文件头&#xff1a;FF D8 FF PNG (png)&#xff0c;文件头&#xff1a;89 50 4E 47 GIF (gif)&#xff0c;文件头&#xff1a;47 49 46 38 Windows Bitmap (bmp)&#xff0c;文件头&#xff1a;42 4D 打开软件“notepad”使用16进…

《洛谷深入浅出基础篇》P1551亲戚——集合——并查集P1551亲戚

上链接&#xff1a;P1551 亲戚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1551 上题干&#xff1a; 题目背景 若某个家族人员过于庞大&#xff0c;要判断两个是否是亲戚&#xff0c;确实还很不容易&#xff0c;现在给出某个亲戚关系图…