C语言学习笔记(抱佛脚版)

毕业一年,发现记性是真的差,每次想起之前的知识总是想不全,看别人写的资料也懵懵懂懂。于是我索性自己再学一遍,并且记录一下。希望对你们也有所帮助。

正片开始!

前面的什么if for都不难理解,嵌套的话也不难理解

重点讲比较容易忘记的,又特别重要的

数组

可以理解为容器,可以存储很多个相同类型的变量。如水杯,可以装液体。

将多个数据存储到一起,每个数据称为容器的元素。

数组概念:

1.相同类型的数据按一定顺序排列的集合,并且使用一个名字命名,通过编号的方式对数据统一管理

2.数组名、下标(或索引)、元素、数组长度

数组特点:

1.数组的元素在内存中依次紧密排列,有序的

2.创建数组对象会在内存开辟一整块连续的空间。占据的空间大小,取决数组的长度和数组中元素的类型。

3.可以直接通过下标的方式调用指定位置的元素,速度很快

4.数组一旦初始化完成长度就是固定的。数组长度一旦确定,就不能修改

5.数组名中引用的是这块连续空间的首地址

数组维度分类:一维数组、二维数组、三维数组、四维数组、等

使用方法: int i[5];        //整型数组,数组名i,长度6

                   char i[5];        //字符数组,数组名i,长度6

调用数组:  
int i[5];//定义一个一维数组
i[0]=55; //对0下标的元素赋值        
int a = i[0]; //将0下标i数组的元素值赋值给a

 这里需要注意,int i[5]; 实际下标只能访问到   i[4];   ,如果访问下标5,属于数组标越界,编译器不一定报错,但是程序肯定是不对的。合理访问角标数值应该为  0~n-1


break和continue关键字

关键字循环结构中的作用适用范围
break跳出循环结构switch-case、循环结构
continue跳出当次循环循环结构

goto关键字

无条件语句转移,执行goto语句,程序跳转到指定标号处执行。可以实现类似循环的效果

void main()
{tiaozhuan:printf("你过来啊!\n");goto tiaozhuan;
}//运行结果是无限输出 你过来啊!......

 指针

指针是c语言的重要概念之一,也是最难理解的概念。ok学会了,咱就可以在简历上写,熟练c语言。

指针在刚开始学习的时候不怎么用,用的多的地方是结构体、链表的结点、二叉树等

//例子
int a = 1;
int b = 2;
int c = a+b;  //那么c的值就是3
//这里用的就是直接访问,直接使用变量名访问
//间接访问就是利用指针

 内存地址与指针

有效的访问内存的每个单元,给内存单元进行编号,编号叫做 内存单元的地址。

每个单元都有地址,包括变量存储的数据也有地址。

如上面的例子

地址0x000000040x000000020x000000B
变量名abc
变量值123

通过地址就能找到变量单元,把这个地址叫做 指针

 指针变量:一个变量专门存储另一变量的地址(即指针)。可以通过访问指针变量达到访问内存另外一个变量数据。

//例子,int a = 1;   int *p ;

 结构体(struct)

结构体有什么用?结构体类似数组,但数组只能包含同类型的数据,结构体可以对多个不同类型的数据进行管理。

允许自定义复合数据类型,将不同的类型的值组合在一起,这种类型叫结构体

c语言没有其他语言的对象(object)和类(class)的概念,结构体理论上可以堪比对象和类。

//结构体声明,构建一个结构体类型的一般格式struct 结构体名{数据类型1 成员名1;    //;结尾数据类型2 成员名2;数据类型3 成员名3;......数据类型n 成员名n;
};    //结尾需要有一个分号----------------------------分界线
//案例1
#include <stdio.h>  // 支持 printf
#include <string.h> // 支持 strcpystruct qinshi{    //定义结构体:寝室int id;    //床位号char name[20];    //姓名char    gender;    //性别char    address[50];    //家庭住址};        //分号不能忘了 //调用结构体
int main(){//格式: struct 结构体类型名称  结构体变量名struct qinshi qin;    //声明结构体变量,这个qin1是用来后面调用,可以替换qin.id = 1;    //调用结构体成员//qin.name = "老王"; //数组不能重新赋值,只能赋值给数组的元素strcpy(qin.name,"老王");  //将数组元素赋值为 老王qin.gender = 'M'; //这里单符号赋值,要给单引号,否则会有问题strcpy(qin.address,"广东中山");printf("id = %d,name = %s,gender=%c,address = %s",qin.id ,qin.name, qin.gender, qin.address);return 0;
}
--------分界线-----
//案例2
#include <stdio.h>  // 支持 printf
#include <string.h> // 支持 strcpystruct qinshi{    //定义结构体:寝室int id;    //床位号char name[20];    //姓名char    gender;    //性别char    address[50];    //家庭住址};        //分号不能忘了 //调用结构体
int main(){//格式2: struct 结构体类型名称  结构体变量名 = {初始化数据};struct qinshi qin = {1, "老王", 'M', "广东中山"};   //按顺序初始化 printf("id = %d,name = %s,gender=%c,address = %s",qin.id ,qin.name, qin.gender, qin.address);return 0;
}
//格式3:struct 结构名 结构体变量={.参数1=***, .参数2=***, ......};
struct qinshi qin = {.id=1, .gender='M',.address= "广东中山", .name="老王", };
//格式三灵活直观一点,不受顺序影响,阅读性高高的  ----------分界线----------//格式4:声明类型的同时定义变量
#include <stdio.h>  // 支持 printf
#include <string.h> // 支持 strcpy 
struct qinshi{    //定义结构体:寝室int id;    //床位号char name[20];    //姓名char    gender;    //性别char    address[50];    //家庭住址}son1,son2,son3;        //直接声明变量名,儿子123int main(){//格式4:声明类型的同时定义变量 strcpy(son1.name ,"老铁");strcpy(son2.name ,"老王");printf("name = %s,name = %s",son1.name,son2.name);return 0;
}

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

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

相关文章

攻破tensorflow,勇创最佳agent(2)---损失(loss) 准确率(accuracy)问题

实战播: 怎么判定一个模型好不好,你设置的值对不对? 需要再看几个值: 例如: model Sequential()for units in model_structure:model.add(Dense(units, activationrelu))model.add(Dropout(train_config.get(dropout_rate, 0.3)))model.add(Dense(1, activationsigmoid)) 他…

Docker-Volume数据卷详讲

Docker数据卷-Volume 一&#xff1a;Volume是什么&#xff0c;用来做什么的 当删除docker容器时&#xff0c;容器内部的文件就会跟随容器所销毁&#xff0c;在生产环境中我们需要将数据持久化保存&#xff0c;就催生了将容器内部的数据保存在宿主机的需求&#xff0c;volume …

使用Selenium和lxml库搜房网爬取某地区房屋信息(python、pycharm爬虫)

一、地址&#xff1a; url "https://zb.newhouse.fang.com/house/s/b91" # 第一页的 URL 但是这个爬虫我不知道为啥总是翻不了页数&#xff0c;请帮忙修改一下~ 二、用到的知识点以及代码详解&#xff1a; 这段代码是一个使用Selenium和lxml库实现的网页爬虫&a…

ai画图comfyUI 精准定位gligen。允许指定图像中多个对象的位置和大小

基础功能下&#xff0c;outpainting是内容填充&#xff0c;拉近拉远镜头&#xff0c;自动填充旁边物体。嵌入模型也需要单独下载&#xff0c;演示完示例后推荐模型站有更直观效果介绍和用法。选中精确定位。看一眼坐标&#xff0c;直接默认出一张图。然后修改定位&#xff0c;和…

如何自动化同义词并使用我们的 Synonyms API 进行上传

作者&#xff1a;来自 Elastic Andre Luiz 了解如何使用 LLM 来自动识别和生成同义词&#xff0c; 使术语可以通过程序方式加载到 Elasticsearch 同义词 API 中。 提高搜索结果的质量对于提供高效的用户体验至关重要。优化搜索的一种方法是通过同义词自动扩展查询词。这样可以更…

boost.asio

as&#xff08;async&#xff09;:异步 同步io&#xff1a; reactor (非阻塞)&#xff08;需要注册一次&#xff0c;在等待消息时可以干别的事&#xff09; 阻塞io网络模型 接口&#xff1a;read\accept\connect\write 接口返回时&#xff0c;io完成 异步…

数据库后续

-- 添加作者字段 alter table t_hero add author varchar(100); -- 更新数据 update t_hero set author "曹雪芹" where id 1; update t_hero set author "曹雪芹" where id 2; update t_hero set author "曹雪芹" where id 3; upd…

计算机网络基础:网络流量工程与优化策略

计算机网络基础:网络流量工程与优化策略 一、前言二、网络流量工程基础2.1 网络流量工程的定义与目标2.2 网络流量的测量与分析2.2.1 常用的流量测量方法2.2.2 流量数据分析三、网络流量工程的优化策略3.1 链路负载均衡策略3.1.1 基于目的地址的负载均衡3.1.2 基于流量权重的负…

H5DS编辑器教程——H5页面触发动画实战指南

在 H5 页面设计中&#xff0c;触发动画通过动态交互提升用户体验&#xff0c;成为吸引注意力的关键手段。H5DS 编辑器作为一款高效的可视化工具&#xff0c;提供了丰富的动画制作功能&#xff0c;即使是零基础用户也能轻松实现专业级效果。 使用工具&#xff1a;H5DS编辑器 触…

什么是具身智能

具身智能&#xff08;Embodied Intelligence&#xff09;是人工智能与机器人学交叉的前沿领域&#xff0c;强调智能体通过身体与环境的动态交互实现自主学习和进化&#xff0c;其核心在于将感知、行动与认知深度融合‌。通俗地讲&#xff0c;就是机器人或者智能系统在物理环境中…

Java实现pdf中动态插入图片

今天接到一个需求&#xff0c;需要在pdf中的签名处&#xff0c;插入签名照片&#xff0c;但签名位置不固定&#xff0c;话不多说上代码&#xff1a; 1、首先引入itextpdf依赖包&#xff1a; <dependency><groupId>com.itextpdf</groupId><artifactId>…

MySQL8.4 InnoDB Cluster高可用集群使用指南

简介 高可用方案 Orchestrator&#xff1a; 可视化 Web 界面管理 MySQL 拓扑结构&#xff0c;并且兼容多种复制架构&#xff08;异步、半同步、GTID&#xff09;&#xff0c;提供自动和手动的故障转移。但是8.0.21后 MySQL 更新了主从复制相关命令&#xff0c;Orchestrator无…

从泛读到精读:合合信息文档解析如何让大模型更懂复杂文档

从泛读到精读&#xff1a;合合信息文档解析如何让大模型更懂复杂文档 一、引言&#xff1a;破解文档“理解力”瓶颈二、核心功能&#xff1a;合合信息的“破局”亮点功能亮点1&#xff1a;复杂图表的高精度解析图表解析&#xff1a;为大模型装上精准“标尺”表格数据精准还原 功…

git:远程仓库拉取到本地,fork到本地,修改后再上传

讲述仓库成员拉取远程仓库&#xff08;即组长的仓库&#xff0c;里面有成员&#xff09;到本地&#xff0c;修改内容再上传的详细步骤&#xff1a; 1.进入仓库&#xff0c;首先fork &#xff08;如不&#xff0c;所作操作会直接对远程仓库进行&#xff0c;不用管理员审核&…

windows清除电脑开机密码,可保留原本的系统和资料,不重装系统

前言 很久的一台电脑没有使用了&#xff0c;开机密码忘了&#xff0c;进不去系统 方法 1.将一个闲置u盘设置成pe盘&#xff08;注意&#xff0c;这个操作会清空原来u盘的数据&#xff0c;需要在配置前将重要数据转移走&#xff0c;数据无价&#xff0c;别因为配置这个丢了重…

频谱分析仪的最大保持功能

专门应用于例如遥控器之类的&#xff0c;按一下&#xff0c;一瞬间出现的信号的测量。 把仪器连接天线&#xff0c;观测空间中的一些信号&#xff0c;比如WIFI的信号&#xff0c;我们可以看到仪器接收到的信号其实是一直变化的&#xff0c;并不是每一次扫描都能扫到我们想要的这…

智能粉尘监测解决方案|守护工业安全,杜绝爆炸隐患

在厂房轰鸣的生产线上&#xff0c;一粒微小粉尘的聚集可能成为一场灾难的导火索。如何实现粉尘浓度的精准监控与快速响应&#xff1f;我们为您打造了一套"感知-预警-处置"全闭环的智能安全方案&#xff01; 行业痛点&#xff1a;粉尘管理的生死线 在金属加工、化工…

Excel处理控件Aspose.Cells指南:如何在不使用 Microsoft Excel 的情况下解锁 Excel 工作表

Microsoft Excel 允许用户使用密码保护工作表&#xff0c;以防止未经授权的更改。但是&#xff0c;在某些情况下&#xff0c;您可能需要在不使用 Microsoft Excel 的情况下解锁 Excel 工作表。在本指南中&#xff0c;我们将探讨解锁 Excel 工作表的不同方法&#xff0c;例如使用…

音乐webpack(通杀webpack-1)

本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可…

【stm32--HAL库DMA+USART+空闲中断不定长收发数据】

串口通信-Hal库实现不定长度收发&#xff0c;DMAUSART DMA串口STM32CUBEMX配置&#xff08;工程创建&#xff09;基础配置时钟配置工程配置 代码编写现象 DMA 在正式配置之前&#xff0c;我们先来一起简单了解一下DMA。DMA&#xff08;Direct Memory Access&#xff0c;直接内…