当前位置: 首页 > news >正文

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

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

正片开始!

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

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

数组

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

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

数组概念:

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

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

数组特点:

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

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

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

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

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

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

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

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


break和continue关键字

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

goto关键字

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

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

 结构体(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;
}

相关文章:

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

毕业一年&#xff0c;发现记性是真的差&#xff0c;每次想起之前的知识总是想不全&#xff0c;看别人写的资料也懵懵懂懂。于是我索性自己再学一遍&#xff0c;并且记录一下。希望对你们也有所帮助。 正片开始&#xff01; 前面的什么if for都不难理解&#xff0c;嵌套的话也…...

DeepSeek-V3-0324 模型发布:开源 AI 性能再攀高峰,推理与编码能力逼近顶级闭源模型

2025 年 3 月 24 日&#xff0c;国内 AI 公司深度求索&#xff08;DeepSeek&#xff09;悄然推出 V3 模型的升级版本 DeepSeek-V3-0324。尽管此次更新并非市场期待的 V4 或 R2 版本&#xff0c;但其在推理速度、编码能力、数学推理及开源生态上的突破&#xff0c;仍迅速引发全球…...

清晰易懂的Cursor实现AI编程从安装到实战TodoList开发

一、Cursor简介与安装部署 什么是Cursor&#xff1f; Cursor是一款基于AI的智能代码编辑器&#xff0c;它集成了强大的AI编程助手功能&#xff0c;能够通过自然语言交互帮助开发者生成、优化和调试代码。与传统的代码编辑器不同&#xff0c;Cursor可以理解你的编程意图&#…...

(二) 深入了解AVFoundation - 播放:AVFoundation 播放基础入门

引言 AVFoundation 是 Apple 提供的强大多媒体框架&#xff0c;支持音视频播放、录制、处理等功能。在 iOS 开发中&#xff0c;AVFoundation 是实现视频播放的核心技术之一。 本篇文章将简单介绍如何使用 AVPlayer、AVPlayerItem 和 AVPlayerLayer 进行视频播放&#xff0c;并…...

重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案!

重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案&#xff01; 稳联技术Profinet转CANopen网关应运而生——它如同一座智能桥梁☺&#xff0c;打通两大主流工业协议&#xff0c;让异构网络无缝互联&#xff0c;助您释放设备潜力&#xff0c;实现真正的“万物互联”&…...

【问题解决】Linux安装conda修改~/.bashrc配置文件后,root 用户下显示 -bash-4.2#

问题描述 在Linux安装conda下的python环境时候&#xff0c;修改了~/.bashrc文件&#xff0c;修改完成后&#xff0c;再次进入服务器后&#xff0c;登录时候显示的不是正常的[rootlocalhost ~]#&#xff0c;而是-bash-4.2# 原因分析&#xff1a; 网上原因有&#xff1a;/root下…...

关于deepseek

DeepSeek&#xff1a;领先的人工智能研究与创新公司 公司简介 DeepSeek&#xff08;深度求索&#xff09;是一家专注于人工智能&#xff08;AI&#xff09;技术研发的创新公司&#xff0c;致力于推动大模型、自然语言处理&#xff08;NLP&#xff09;、机器学习&#xff08;M…...

EtherCAT转ProfiNet协议转换网关构建西门子PLC与海克斯康机器人的冗余通信链路

一、案例背景 某电子制造企业的5G通信模块组装线&#xff0c;采用西门子S7-1200PLC&#xff08;ProfiNet主站&#xff09;进行产线调度&#xff0c;而精密组装工序由3台海克斯康工业机器人&#xff08;EtherCAT从站&#xff09;完成。由于协议差异&#xff0c;机器人动作与PLC…...

李宏毅机器学习笔记(1)—机器学习基本概念+深度学习基本概念

机器学习基本概念 1、获取模型 步骤 1.1、假定未知函数 带未知参数的函数 1.2、定义损失函数 真实值&#xff1a;label MAE MSE 几率分布&#xff0c;cross-entropy? 1.3、优化 单独考虑一个参数 让损失函数最小&#xff0c;找导数为零的点 单独考虑w&#xff0c;w…...

RAG生成中的多文档动态融合及去重加权策略探讨

目录 RAG生成中的多文档动态融合及去重加权策略探讨 一、RAG生成概述 二、多文档动态融合策略 1. 拼接与分段编码 2. 独立编码与后续融合 3. 基于查询的动态加权 三、检索结果的去重与加权策略 1. 去重策略 2. 加权策略 四、实践中的挑战与思考 五、结语 RAG生成中的…...

对匿名认证的理解

概述&#xff1a;在 Spring Security 中&#xff0c;** 匿名认证&#xff08;Anonymous Authentication&#xff09;** 是一种特殊的认证机制&#xff0c;用于处理未提供有效凭证的请求。 匿名认证的本质 目的&#xff1a;允许未认证用户访问特定资源。原理&#xff1a; 当请求…...

leetcoed0044. 通配符匹配 hard

1 题目&#xff1a;通配符匹配 官方难度&#xff1a;难 给你一个输入字符串 (s) 和一个字符模式 ( p ) &#xff0c;请你实现一个支持 ‘?’ 和 ‘*’ 匹配规则的通配符匹配&#xff1a; ‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符序列&#xff08;包括空字符序…...

航拍数据集汇总,覆盖车辆/船舶检测/物体评估/城市景观……

随着无人机的普及化和计算机视觉技术的迅猛发展&#xff0c;无人机航拍作为一种创新的摄影方式&#xff0c;正以前所未有的速度走进大众视野。它打破了传统拍摄的局限&#xff0c;为我们开启了「上帝视角」。航拍硬件性能逐渐逼近物理极限&#xff0c;算法优化的难度也日益增大…...

【SECS】初识SECS协议

【SECS】初识SECS协议 基本知识流和功能函数数量官方文件中缩写标注正常是不是都是主机向设备端?对数据信息中第1字节第1-2位官网介绍 S1F1双向指令说明测试H发起端E发起端 参考资料 基本知识 SECS&#xff08;SEMI Equipment Communications Standard&#xff09;即半导体设…...

RL基础以及AlphaGo、AlphaGo Zero原理

RL基础 Q价值函数和状态价值函数 Action-Value function&#xff1a; Q ( s , a ) Q(s, a) Q(s,a)是agent在状态s下执行某一个动作&#xff08;如向上走&#xff09;&#xff0c;所获得的及时奖励和未来折扣的累计奖励 State-Value function&#xff1a; V ( s ) V(s) V(s)是…...

Android R adb remount 调用流程

目的&#xff1a;调查adb remount 与adb shell进去后执行remount的差异 调试方法&#xff1a;添加log编译adbd,替换system\apex\com.android.adbd\bin\adbd 一、调查adb remount实现 关键代码&#xff1a;system\core\adb\daemon\services.cpp unique_fd daemon_service_to…...

uvm sequence

UVM Sequence 是验证环境中生成和控制事务&#xff08;Transaction&#xff09;流的核心机制&#xff0c;它通过动态生成、随机化和调度事务&#xff0c;实现灵活多样的测试场景。以下是Sequence的详细解析&#xff1a; Sequence 的核心作用 事务流生成&#xff1a;通过 uvm_s…...

Java 代理(一) 静态代理

学习代理的设计模式的时候&#xff0c;经常碰到的一个经典场景就是想统计某个方法的执行时间。 1 静态代理模式的产生 需求1. 统计方法执行时间 统计方法执行时间&#xff0c;在很多API/性能监控中都有这个需求。 下面以简单的计算器为例子&#xff0c;计算加法耗时。代码如下…...

《初级社会工作者》考试题,附答案解析

一、单项选择题&#xff08;共 60 题&#xff0c;每题 1 分&#xff09; 1. 社会工作者在社区中开展针对留守儿童的支持小组活动&#xff0c;发现一名儿童因父母长期外出务工而产生严重的分离焦虑。此时&#xff0c;社会工作者应首先采取的介入策略是&#xff08; &#xff09…...

网盘解析工具1.3.0,修改了一些bug,建议更新到此版本

最近问题反馈比较多&#xff0c;本来想着周末再更新了来着&#xff0c;但是账号黑的实在太快了。排查了下应该是某度网盘的一个接口缺少了一些参数&#xff0c;导致一直进黑名单。所幸参数不难找&#xff0c;新版本已经修复了&#xff0c;建议大家赶紧更新到1.3.0版本&#xff…...

Multi-Stage Progressive Image Restoration论文阅读

摘要 图像复原任务在恢复图像时需要在空间细节与高层语境化信息之间取得复杂的平衡。本文提出了一种新颖的协同设计方法&#xff0c;能够最优地平衡这些竞争目标。我们的核心方案是一种多阶段架构&#xff0c;通过逐步学习退化输入的复原函数&#xff0c;将整体恢复过程分解为…...

了解图像质量评价指标PSNR

一、PSNR是什么 1.1 定义与数学公式 峰值信噪比&#xff08;Peak Signal-to-Noise Ratio&#xff0c;PSNR&#xff09;是数字图像处理领域最经典的客观质量评价指标之一。其核心思想是通过计算原始图像与失真图像之间的均方误差&#xff08;MSE&#xff09;来衡量失真程度&am…...

C++概述

1 什么是面向对象】 概念上来说&#xff1a;就是以对象(具体的变量)为导向的编程思路 专注于&#xff1a;一个对象具体能实现哪些过程(哪些功能) 面向对象 n * 面向过程 结论&#xff1a;面向对象需要做的事情 1&#xff1a;我们要想清楚&#xff0c;我们现在需要编写一个…...

axios文件下载使用后端传递的名称

java后端通过HttpServletResponse 返回文件流 在Content-Disposition中插入文件名 一定要设置Access-Control-Expose-Headers&#xff0c;代表跨域该Content-Disposition返回Header可读&#xff0c;如果没有&#xff0c;前端是取不到Content-Disposition的&#xff0c;可以在统…...

如何让 history 记录命令执行时间?Linux/macOS 终端时间戳设置指南

引言:你真的会用 history 吗? 有没有遇到过这样的情况:你想回顾某个重要命令的执行记录,却发现 history 只列出了命令序号和内容,根本没有时间戳?这在运维排查、故障分析、甚至审计时都会带来极大的不便。 想象一下,你在服务器上误删了某个文件,但不知道具体是几点执…...

使用LLaMAFactory微调Qwen大模型

一、环境配置与工具安装 1. 硬件要求 GPU:至少1块NVIDIA GPU(推荐RTX 4090/A100/H100,显存≥16GB)。内存:≥64GB系统内存。存储:≥100GB硬盘空间用于模型与数据集存储。2. 软件依赖 Python 3.8+:需安装CUDA支持的PyTorch版本(如torch==2.0.1+cu117)。 依赖库:通过以…...

CSS3:现代Web设计的魔法卷轴

一、布局革命&#xff1a;从平面到多维空间 1.1 Grid布局的次元突破 星际战舰布局系统 .galaxy {display: grid;grid-template-areas: "nav nav nav""sidebar content ads""footer footer footer";grid-template-rows: 80px 1fr 120p…...

Netty - 从Nginx 四层(TCP/UDP)流量中获取客户端真实/网络出口IP

文章目录 一、背景与原理1.1 问题场景网络架构影响分析1.1 客户端与Nginx之间存在的NAT/VPN1.2 Nginx与RPC服务之间的NAT 1.2 技术原理 二、环境配置验证2.1 Nginx配置2.2 版本要求 三、Netty服务端实现3.1 Pipeline配置&#xff08;核心代码&#xff09;3.2 协议处理器实现3.3…...

基于Spring AI开发本地Jenkins MCP Server服务

前言 首先介绍下MCP是什么&#xff1f; MCP是由开发了 Claude 模型的 Anthropic 公司2024年12月提出并开源的一项开放标准&#xff0c;全称&#xff1a;Model Context Protocol&#xff0c;它是一个开放协议&#xff0c;它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能…...

记录一次TDSQL事务太大拆过binlog阈值报错

记录一次TDSQL事务太大拆过binlog阈值报错处理过程 1、排查任何类型数据库故障的第一步&#xff0c; 同步实例信息、报错内容、报错时间段、当前是否恢复、如何感知到数据库问题的、对应用有什么影响、系统允许的时间窗口。 2、明确报错内容为单次写入binlog量超过阈值 3、登陆…...

1688商品详情接口:深度解析与应用实践

在电商领域&#xff0c;1688作为中国领先的B2B平台&#xff0c;拥有海量的商品信息。对于开发者、商家和数据分析师来说&#xff0c;获取1688商品的详细信息是实现数据分析、竞品研究、自动化管理和精准营销的重要手段。本文将详细介绍1688商品详情接口的使用方法、技术细节以及…...

机试题——村落基站建设

题目描述 假设村落以二叉树的形状分布&#xff0c;我们需要选择在哪些村落建设基站。如果某个村落建设了基站&#xff0c;那么它和它相邻的村落&#xff08;包括本节点、父节点和子节点&#xff09;也会有信号覆盖。目标是计算出最少需要建设的基站数。 输入描述 输入为一个…...

2025年高压电工考试真题分享

以下是一些高压电工考试题&#xff1a; 单选题 1、高压架空线路的档距一般为&#xff08; &#xff09;。 A. 20 - 30m B. 30 - 50m C. 50 - 80m D. 80 - 100m 答案&#xff1a;B。解析&#xff1a;高压架空线路档距一般在 30 - 50m&#xff0c;这样的档距能较好地保证线…...

T-SQL 语言基础:逆透视转换

概念 -- 把数据从列的转台转为行的状态-- 涉及查询数据的透视状态&#xff0c;将来自单个记录中多个列的值扩展为单个列中具有相同值的多个记录-- 也就是把透视表中的每个源行潜在地转换为多个行示例表继续使用上一篇博客&#xff0c;TempDB dbo.Orders 表。 T-SQL 语言基础&a…...

循环神经网络 - 给网络增加记忆能力

为了处理时序数据并利用其历史信息&#xff0c; 我们需要让网络具有短期记忆能力。而前馈网络是一种静态网络&#xff0c;不具备这种记忆能力。在正式学习循环神经网络之前&#xff0c;我们先来了解一下给网络增加短期记忆能力的三种方法。 一、延时神经网络 延时神经网络&am…...

Docker Desktop 界面功能介绍

Docker Desktop 界面功能介绍 左侧导航栏 Containers(容器): 用于管理容器,包括查看运行中或已停止的容器,检查容器状态、日志,执行容器内命令,启动、停止、删除容器等操作。Images(镜像): 管理本地 Docker 镜像,可查看镜像列表、从 Docker Hub 拉取新镜像、删除镜…...

R001-区块链

1.区块链概念 英文名&#xff1a;blockchain 或block chain what: 是一种块链式存储、不可篡改、安全可信的去中心化分布式账本. 特点&#xff1a;它结合了分布式存储、点对点传输、共识机制、密码学等技术&#xff0c;通过不断增长的数据块链&#xff08;Blocks&#xff09;记…...

无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通-

无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通- 瑞士拥有1,400 多公里长的高速公路网络。这些公路将人和货物从山谷高原运送到阿尔卑斯山的最高山口。维护这些高速公路使国家得以顺利运转。高速公路维护的重要性显而易见&#xff0c;但在…...

StarRocks 证书SRCA和SRCP

目录 引子 SRCA认证 SRCP认证 认证流程 引子 StarRocks介绍&#xff1a;极速全场景 MPP数据库starrocks介绍-CSDN博客 StarRocks中文社区推出了StarRocks 培训与认证&#xff0c;学习并通过考试后&#xff0c;可以得到StarRocks证书。对starrocks感兴趣或需要使用starrocks的…...

String类的模拟实现

我们在使用STL库的时候&#xff0c;不仅需要掌握如何使用&#xff0c;我们还需要了解一些底层的模拟实现。 1&#xff1a;需要模拟实现的string类函数 #pragma once #include<iostream> #include<assert.h> #include<utility> using namespace std;namespa…...

VMware Windows Tools 存在认证绕过漏洞(CVE-2025-22230)

漏洞概述 博通公司&#xff08;Broadcom&#xff09;近日修复了 VMware Windows Tools 中存在的一个高危认证绕过漏洞&#xff0c;该漏洞编号为 CVE-2025-22230&#xff08;CVSS 评分为 9.8&#xff09;。VMware Windows Tools 是一套实用程序套件&#xff0c;可提升运行在 VM…...

【计算机网络ICMP协议详解】

文章目录 一、前言二、ICMP协议概述2.1 ICMP 与 IP 协议的关系2.2 ICMP 的作用 三、ICMP报文格式3.1 字段解释&#xff1a; 四、常见ICMP类型与代码五、ICMP协议工作原理与示例5.1 ping 命令5.2 traceroute 命令 六、ICMP与网络安全6.1 ICMP的安全隐患6.2 防御措施 七、ICMP协议…...

WPF 自定义路由事件

WPF 路由事件的基础 什么是路由事件&#xff1f; 路由事件是一种特殊的事件机制&#xff0c;允许事件在可视化树中传播。它支持三种路由策略&#xff1a; 冒泡&#xff08;Bubbling&#xff09;&#xff1a;事件从源元素向上传播到根元素。隧道&#xff08;Tunneling&#xf…...

从零开始跑通3DGS教程:(一)数据(采集)

写在前面 本文内容 本文所属《从零开始跑通3DGS教程》系列文章; 本文介绍数据准备或者采集准备方式 平台/环境 linux, nvidia GPU, docker 转载请注明出处&#xff1a; https://blog.csdn.net/qq_41102371/article/details/146533367 目录 写在前面系列文章公开数据自己的数…...

DATEDIFF 函数

DATEDIFF 函数概述 DATEDIFF 函数用于计算两个日期之间的差值。 不同的数据库系统对 DATEDIFF 函数的实现和语法可能略有不同&#xff0c;但基本原理是相同的。 通用语法 DATEDIFF(datepart, startdate, enddate)datepart: 指定要计算的日期部分。 例如&#xff0c;day、wee…...

Java 大视界 -- 基于 Java 的大数据隐私计算在医疗影像数据共享中的实践探索(158)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

在Windows下VSCodeSSH远程登录到Ubuntu

Window用VSCode通过SSH远程登录Ubuntu SSH 服务开启Windows远程登录 SSH 服务开启 首先要确保 Ubuntu 的 SSH 服务开启了&#xff0c;开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu 开启 SSH sudo apt-get install openssh-serverWindows远…...

MATLAB 控制系统设计与仿真 - 31

二次型最优控制 考虑到系统如果以状态空间方程的形式给出&#xff0c;其性能指标为&#xff1a; 其中F,Q,R是有设计者事先选定。线性二次最优控制问题简称LQ(Linear Quadractic)问题,就是寻找一个控制,使得系统沿着由指定初态出发的相应轨迹,其性能指标J取得最小值。 LQ问题分…...

基于SpringBoot + Vue 的考勤管理系统

系统环境 开发工具&#xff1a;IntelliJ IDEAJava 版本&#xff1a;JDK 1.8数据库&#xff1a;MySQL项目构建工具&#xff1a;Maven 项目主要技术 后端技术 Spring Boot&#xff1a;简化 Spring 应用开发流程&#xff0c;实现快速搭建和部署。MyBatis&#xff1a;用于实现数…...

JavaScript 中Object.assign()和展开运算符在对象合并时的区别,各自的适用场景是什么?

JavaScript 中Object.assign()和展开运算符在对象合并时的区别&#xff0c;各自的适用场景是什么&#xff1f; 在 JavaScript 里&#xff0c;咱们常常要把多个对象合并成一个新对象。Object.assign()和展开运算符&#xff08;...&#xff09;就像两个得力小助手&#xff0c;能…...