C语言基础01天:C语言概述 / 数据类型 / 常量与变量

C语言基础:第1天笔记

C语言基础

预备知识

计算机的组成
计算机组成
  • 计算机:能进行计算和逻辑处理的设备
  • 硬件:组成计算机的各种物理部件。(内存条,CPU,鼠标)

硬件=电子设备+单片机编程(单片机,微控制器)+集成电路(原理图PCB设计)+嵌入式系统

  • 软件:计算机中运行的程序和数据

    软件=系统软件(Linux系统)+应用软件+编程语言(C/C++)+算法和数据结构

计算机的六大部件
  • 中央处理器(CPU):控制+计算

  • 内存:程序运行时 ,临时存储数据

  • 输入设备:向计算机输入数据(键盘,扫码枪)

  • 输出设备:将计算机数据进行输出(显示器,打印机)

  • 外存储:永久数据(文件)的存储(磁盘)

  • 网络:提供存储

    计算机的工作原理
    • 存储程序
    • 程序控制
    计算机的语言
    • 机器语言:最底层的语言,通常由0和1构成,直接作用于硬件。
    • 汇编语言:充当翻译
    • 高级语言:C/c++,java,python,php,c#,GO

C语言简史与特点

C语言简史

在这里插入图片描述
在这里插入图片描述

![image-20250120095437888](./assets/image-20250120095437888.png

C语言特点
  • C语言是一种强大而灵活的语言,可以用来编写任意复杂的程序

  • C语言简介、紧凑、使用方便

  • C语言是可移植的

  • C语言适合结构化程序设计,要求用户以模块化的方式思考问题

  • C语言可直接控制硬件(位运算符,地址)

  • 生成目标代码质量高,程序执行效率高,运行速度快。

    C语言程序的开发过程

    开发的三个步骤
    1. 编辑:程序员向.c文件写入源代码(程序员

    2. 编译:将源文件(.c)编译成可执行程序(二进制)(编译器

    3. 运行:运行可执行程序(操作系统

      在这里插入图片描述

C语言程序的编辑过程

本章节简单了解,后续章节讲解细节

编辑过程分为四个步骤:

  • 预处理 # include
  • 编译
  • 汇编
  • 链接

在这里插入图片描述

C语言的基本结构

一个简单的c语言程序

功能:要求在控制台输出"hello world"


结构程序分析:

  • 注释:

    代码中起到解释说明的文字(提高代码可读性),或者对代码进行屏蔽,注释不会被执行,他在预处理阶段被删除了

  • 预处理指令:

    程序中包含的某一文件内容(#include <stdio.h>)

  • 主函数:

    c程序的入口函数,一个c文件有且仅有一个主函数(main函数)

  • 函数首部(函数头)/函数说明

    说明函数类型,函数头由函数名和函数参数构成,举例:int main(int argc,char *argv[])

  • 函数体

    包括变量说明和语句执行部分,举例{..}

  • 函数调用语句:

    比如格式输出函数:printf(),输出

C语言编码规范要求

C语言在编码的时候,需要遵循如下规范:

  • 常用缩进的书写格式(一般缩进2~4个字符,推荐4个字符,咱们使用的Linux默认是4个)
  • 要有足够的注释(添加必要的注释,使代码更好理解)
  • 要有合适的空行(一般预处理命令和函数之间,全局变量和函数,函数和函数之间,使代码结构更加清晰)
  • {}对齐(c和c++中“{“和”}”都需要独占一行,千万不要受java影响)
  • 函数体内采用分层缩进和模块化的书写方式。
  • 不把多条语句写在程序的同一行上
  • 命名:变量或者函数命名要尽可能包含更多含义。但不能太长

C语言程序设计的特点

C语言程序在设计的时候,需要注意以下细节:

  • C语言程序由一个或者多个函数组成,但有且仅有一个主函数(main函数):main函数是程序的入口函数,可置于程序的任意位置,但是建议放在所有函数的最下面。
  • 程序中可以有预处理指令(如:#include指令 )预处理指令通常在程序的最前面。
  • 每个语句以分号结尾:预处理命令函数头函数,分支循环后面的花括号后面不能添加分号
  • 函数体由一对花括弧{}括起来
  • 包含在/…/内的文本为注释内容
  • 一行可以写几个语句,

  • 程序区分大小写:一般变量,语句等用小写字母书写:符号常量,宏名等用大写字母书写

  • 标识符(变量名、数组名、函数名等)和保留字(int、double、main、if等)之间必须加空格,举例:int age;

C语言中的注释

在c语言用,注释一般分为两类,单行注释多行注释

注释的作用:给代码添加解释说明性文字,提示代码可读性,同时也可以使用注释屏蔽代码。

单行注释

说明:单行注释使用双斜杠//…表示。我们一般用于常量、变量、函数调用等

语法:

//注释的内容

范例:

//预处理指令,引入的系统的标准输入输出率(标准io中的外设io)
#include <stdio.h>

int main()
{
    //像控制台打印输出一句话
    printf("hello world\n";
    
    return 0;
}
多行注释

说明:多行注释使用斜杠星花/*..*/表示。可以占多行,但不能嵌套。我们一般用于函数,文件头说明等。

语法:

/*
  要注释
  的内容
*/

范例:

在这里插入图片描述

注意:由多行注释衍生出的更细致的注释,我们称之为文档注释

范例

在这里插入图片描述

/**
*主函数
*@author 开发者
*@param 参数
*return 返回值
*/

int main()
{
    ......
}

数据类型

定义

数据类型其实是固定大小内存的别名。并且描述了一个变量存放什么类型的数据。简单来说,就是组织和操作数据

数据:计算机要处理的数据(数字、字符串、文字、符号、图片、音频、视频等)

  • 数据类型不仅帮我们组织和操作数据,还决定了程序如何有效的利用内存

  • 了解数据类型的内存需求是理解计算机管理和操作数据的关键

    小贴士:

    程序的运行需要用到内存。

内存存储容量单位

字节:计算机存储的一种单位(C语言中一般都是以字节为单位进行存储空间的计算),一般应用层最小存储单元的表示

比特位:二进制(0,1)计算机是以二进制的方式进行存储的,我们应用层可以通过位运算进行位的操作

在这里插入图片描述

数据类型的分类和计算方法

数据类型分类
  • 基本类型

    • 数值类型

      • 整型:

        • 短整型:short(short int)
        • 基本型:int
        • 长整型:long(long int)
        • 长长整型:long long(long long int)
      • 浮点型:

        • 单精度型:float
        • 双精度型:double
        • 长双精度型:long double
      • 字符类型:char

  • 构造类型(用户自定义)

    • 结构体:struct
    • 联合体/共用体:union
    • 枚举类型:enum
  • 指针类型:*(解引用符)/&(取地址符)

  • 空类型:void

    数据类型在内存中的大小

在这里插入图片描述

注意:

1.因为C语言没有byte这个单位,所以我们一般用char来表示字节1char=1byte

2.C语言本身并没有提供布尔类型,但是后期提供了一个bool的库,从而让我可以向使用其他语言一样使用bool

小贴士

获取某个数据类型或者变量所占的字符:sizefo(某个数据类型后者变量名)

printf("true size:%d\n",sizeof(true);//true size:4 解释:true占4个字节,bool的底层是int类型的0和非0
printf("false size:%d\n",sizeof(false));//true size:4解释:true占四个字符
printf("bool size:%d\n",sizeof(bool));//bool size:1 解释:占一个字节

总结:

  1. 数据类型在内存中所占的字节数和C语言的变异系统有关。
  2. 计算某个数据类型所占的字节数可以用sizeof
  3. 布尔类型要添加#include <stdool.h>,大家也可以使用int类型的0表示假非0则真
课堂练习

校验各个数据类型子啊内存中的大小

常量与变量

在C语言中,数据的基本表现形式是常量和变量,不管是常量还是变量,都是需要在内存中申请一块空间用于数据的存放

常量

  • 定义:在程序执行过程中其值不能被改变的量

  • 分类:int、float、double、char和符号常量

    整型常量

整型常量可以用十进制、八进制、十六进制三种形式表示。

  • 十进制常量:由0~9的数字组成,没有前缀,不能以0开头(举例:99.218)
  • 八进制常量:以0为前缀,其后由0~7数字组成,没有小数部分。(举例:021,077)
  • 十六进制常量:以0x或者0X为前缀,其后由数字0~9的数字和A到F,没有小数部分(举例:0x00f0f000)

整型常量中的长整数型数据可用L或者l作为后缀(举例:long num=123L)

  • 整型常量的分类

    • 有符号与无符号基本整型常量
    • 有符号与无符号长整型常量
    • 有符号与无符号短整型常量
  • 整型常量的表示

    • 十进制表示,可以使用10个数字符号0~9以及-和+,如:123,-90
    • 八进制表示:以0开头,可以使用7个数字符号0~7以及+和-,如0123,-011
    • 十六进制表示:以0x或0X开头,可以使用0~9以及A到F(a到f)如:0x12,-0x12
    浮点型常量

    C语言中浮点数就是平常所说的实数(实数型 ),有两种表现形式:

    • 十进制小数形式:如0.123,-17.8

    • 指数形式(科学计数法)如:1230可以表示为1.23∗1031.23*10^31.23103也可以表示为:1.23e3
      指数形式(科学计数法)如:1230可以表示为1.23∗1031.23*10^31.23103也可以表示为:1.23e3

字符常量

用单引号''括起来的一个字符,如‘a’、‘3’、‘—’等,比如:'齐’就不是字符,一个汉字所占的字节数超过一个字符。中文符号当成汉字理解。英文输入法下输入的字母,数字,符号都是单字符

转义字符常量:以反斜杠\开头的字符序列,表示控制以及不可见字符,如

在这里插入图片描述

字符串常量

说明:在C语言中,是支持字符串常量的,但是不支持字符串变量。字符串变量需要使用字符数组或者字符指针来实现

  • 用一对双引号“”括起来的字符序列,如:“How do you do?yuyuan”,“yueqian”,“12”,“true”,

  • 可以输出一个字符序列,如:printf(“%s”,“hello world\n”);perintf(“hello world\n”);

    ,

在这里插入图片描述

符号常量

定义一个标识符来代表一个常量

  • 如:用PI代表圆周率π,就是3.1415926

    好处:

    • 增加可读性

    • 增强了可维护性

      ​ 定义符号常量:

      • 用编译预处理指令#define

      • 格式:

      • #define 标识符 字符串
        

        标识符和字符串之间用空格隔开

        句末不用分号

        标识符的命名采用大写,如果有多个单词,使用下划线分隔,举例:MAX_VAL,MIN_VAL

内容概要:本文围绕基于三电平ANPC构网型逆变器的虚拟同步控制策略展开研究,重点探讨了其在Simulink环境下的仿真实现方法。研究聚焦于虚拟同步发电机(VSG)控制、双闭环控制及中点电位平衡控制等核心技术,旨在提升高渗透率新能源背景下逆变器的惯量支撑能力和电能质量。通过构建详细的系统模型,提出并优化控制策略,有效解决了三电平逆变器在动态响应、稳定性及中点电压波动等方面的挑战,增强了系统对复杂电网工况的适应能力。研究进一步结合VSG的虚拟惯量阻尼特性,实现对电网频率波动的有效抑制,并通过双闭环结构提升电流跟踪精度功率调节性能,同时引入中点电位平衡控制策略,确保多电平拓扑输出电压对称性可靠性。; 适合人群:具备电力电子、自动控制或新能源发电相关背景,从事科研或工程开发的研发人员,尤其是关注构网型逆变器、虚拟同步技术及多电平拓扑控制的研究生工程师。; 使用场景及目标:①应用于新能源并网系统中构网型逆变器的设计仿真;②为提升电力系统稳定性提供虚拟同步控制方案;③实现三电平ANPC逆变器中点电位的有效平衡动态性能优化; 阅读建议:建议结合Simulink仿真模型进行实践操作,重点关注控制策略的实现细节参数整定过程,同时可参考文中提到的双闭环结构VSG控制逻辑进行扩展研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值