小菜的C语言之路——第一课——启程

3dMax脚本类插件:不写 C++也能造“原生”工具 从plugin关键字到场景持久化,拆解 MAXScript 插件开发全流程! 阅读详情


前言

    这个时代,编程已经十分普及了,并非是程序员的专攻,从这篇文章开始,我将开始记录我学习编程的过程;大家感兴趣可以持续关注。

一、c语言

1.C语言是什么?

语言是一种工具:交流

人与人交流语言:汉语、英语、韩语、日语等等。——写文章、说话(——自己的名字)。
汉语:我叫董李阳。
英语:My name is dongliyang.

人与计算机交流语言:C、c++、Java、Python、go等。——写程序(完成某件事情——上传)

	上传功能:	c写的程序用来上传文件M
			  			c++写的程序用来上传文件
			 			Java写的程序来上传文件

2.C语言擅长—不代表只能

请添加图片描述
C语言擅长嵌入式开发、单片机开发。
c语言效率高,更接近于底层的硬件,所以和硬件打交道的代码一般采用C语言。
c语言面向过程,更适合做一些硬件操作的工作。

C语言标准(ANSIC):C89、C90、C99、C11、C17等标准。

C89、C90、使用广泛

3.机器语言发展历程:

2进制——>汇编语言(助记符)——>B语言——>C语言

C常见编译器:
MSVC——>VS
gcc——>Linux
clang——>apple

二、第一个C语言程序.

1.工具

VS2022(可能过新,有些功能不是很稳定)
VC6.0 、devc++ 、太旧,
项目名称:不要中文、特殊字符、空格。
路径:放入合适的路径、避免自己找不到。

创建源文件(.C)
源文件名称:有意义、不乱起名

2.写代码——hello world

代码如下(示例):

#include<stdio.h>
int main()
{
	printf("hello world");
	
	return 0;
}

运行效果:
请添加图片描述

3.解读代码

C语言框架:

int main()
{
	return 0;
}

printf:库函数
功能:在屏幕上打印信息
注意:需引用头文件—— stdio.h ===>用别人的东西,要打招呼

#include<stdio.h>

stdio.h
stdio: stdandard input output
标准 输入 输出
.h——>头文件

为什么写完代码后还需要编译?
文本型代码电脑读不懂,电脑只理解2进制

文本型代码—MSVC、gcc、clang等编译器——>2进制代码

VS2022——集成开发环境(IDE)
编辑器: 例如:文本编辑器、vim等
编译器: MSVC、gcc、clang等
调试器:

三.初识数据类型

1.为什么会产生数据类型?为什么写代码?

为了解决生活中的问题

如:
商城:
商品:名字+价格+品类+编号等
名字:方便面
价格:2.5元
品类:零食
编号:123456

2.C语言中的数据类型

char—字符型——‘A’
short—短整型
int——整形——10
long——长整形
long long——更长的整形
float——单精度浮点型
double——双精度浮点型 12.5

浮点型:小数点可以跑
123.4
12.3410^1
1.234
10^2
将’A’存放到char类型空间中就像将书放到书架中一样。

3.各类型长度——sizeof

#sizeof()
单位是什么呢?——字节
bit
1 byte=8bit
1 KB=1024byte
1 MB=1024KB
1 GB=1024MB
1 TB=1024GB
计算机仅能识别二进制:0/1

#include<stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

此处与机器位数有关 (32/64)
1字节
2字节
4字节
4/8字节
8字节
4字节
8字节

为什么会有这么多类型?——丰富表达生活中的各种值。
特殊:一个汉字占用两个字节

四.常量与变量

1.变量定义

生活中的常量:π、血型、性别——一般不改变
生活中变量:身高、年龄

C语言变量:
定义变量:类型 变量名 = xxx ;
int age = 18;
char ch =‘D’;
变量命名:
a,只能由字母、数字、下划线组成。
b,不能数字开头 2b(错) _2b(对)
c,长度不可超过63。难以记忆、书写 。
d,区分大小写
e,不可用关键字 int int =10; (错误)
f,变量名有意义:age、salary、sum、add、id
int age=18;

2.变量分类

局部变量:{}内
全局变量:{}外
局部优先。

3.变量的使用:

scanf
VS会提示该函数不安全,建议你使用scanf_s
scanf_s是vs提供的,不是C语言标准库函数。若你使用scanf_s,你的代码在devC++、gcc其他的编译器不能通过。可移植性降低

可以使用

#define _CRT_SECURE_NO_WARNINGS

必须放在报错文件第一行。
如:scanf、strcpy、strcat等函数也有类似问题


#include<stdio.h>
//下一个代码,完成两个整数的相加
//printf是输入函数/打印函数
//scanf是一个输入函数
int main()
{
	int num1 = 0;
	int num2 = 0;
	//输入
	scanf("%d %d", &num1, &num2);
	//计算
	int sum=num1 + num2;
	//输出
	printf("%d\n", sum);

	return 0;
}

五、注意事项

&:取地址符
\n:换行符
printf(“hello world”);
scanf(“%d”,&a);
切记:引用头文件
scanf不要乱加换行符、但也不要忘记&

总结

	以上就是今天要讲的内容,仅简单的教我们写出第一个程序,也学习了printf和scanf两个函数以及sizeof操作符,希望大家持续关注。

一个冷知识

x86是32位
x64是64位

小米汽车技术路线 从小米的电子电器架构来看,行业内EEA已经由域集中逐渐过度到域融合+区域控制的架构并向着中央计算+区域控制的方向发展。 而小米汽车智驾算法也从基于高精地图模块化架构,到去高精地图模块化架构,再到端到端架构,这也正是行业对于智驾算法演进的共识。 阅读详情

相关推荐

Claude Code与Vibe Coding:2026年AI编程实战指南

AI编程助手是基于大语言模型的智能代码生成工具,通过理解编程上下文提供精准的代码补全和重构建议。其核心原理是利用深度学习技术分析代码语义,将自然语言指令转化为可执行代码。这种技术能显著提升开发效率,减少重复性编码工作,特别适用于快速原型开发和复杂问题求解。在实际应用场景中,AI编程助手可与Vibe Coding方法论结合,建立流畅的人机协作工作流。Claude Code作为先进的AI编程工具,支持多语言开发和智能错误检测,而Vibe Coding则强调自然交互和迭代优化,两者协同为开发者提供完整的AI编程解

weixin_29057695的博客 340

我的编程之旅启程:目标,路径与展望

大家好呀,我叫Xi_qointu,一名刚刚接触编程的小菜鸡。接触编程源于游戏,因为主播是一个爱打游戏的人机,又菜又爱玩。在一次次破防中成为游戏端程序员的梦清晰了起来。为此我决定付出实际行动,以C语言为基石向C++研发攀进,在我学习编程的这段时间内我将花每周三晚加周六一日来进行编程学习。这篇博客是一个开始,也是一份对自己的公开承诺,希望在不久的将来,能用我亲手编写的代码来回应这份青涩。

Xi_qointu的博客 93

SigmaStar(星宸科技)SSC33X系列

目前,SSC33X系列已经量产了接近两年,SDK成熟稳定,功耗表现良好,图像效果出色,广泛应用在AI枪机、AI球机、AI云台机、多目摄像机、停车场闸机、人脸门禁、人脸锁、门铃猫眼等产品上。

Comake Online的博客 1万+

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 213

基于单片机控制双向可控硅灯光强度设计

*单片机设计介绍,基于单片机控制双向可控硅灯光强度设计。

QQ2193276455的博客 2456

领域驱动新实践:COLA框架全解析——架构设计与实战案例解析

定义订单支付事件java代码解读复制代码} }Order定义Order类,继承并实现支付逻辑:java代码解读复制代码} }定义接口:java代码解读复制代码定义类,处理订单支付逻辑并持久化:java代码解读复制代码} }定义和处理订单支付事件:java代码解读复制代码} }java代码解读复制代码} }定义和接口及其实现:java代码解读复制代码java代码解读复制代码。

2401_89221445的博客 2657

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 385

知道LPDDR和DDR什么关系吗?

话不多说,先上大白话,一个网友总结的很好:简单地说DRR4是标准电压版的PC和服务器内存,LPDDR4属于手机等嵌入式移动设备使用的低电压低功耗内存,LPDDR4X则是LPDDR4的升级版,下面详细看看老哥的博客。LPDDR4是与DDR4内存等效的移动设备。。LPDDR4具有两个16位通道,从而使每个DIMM的总线总长度为32位。相比之下,DDR4每个DIMM具有64位通道。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 2805

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 310

【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

DeveloperMrMeng的博客 1495

2026必学:LangChain+Playwright爬虫,赋能RAG智能问答系统

RAG(检索增强生成)智能问答系统的效果,80%取决于数据源的质量。2026年,LangChain与Playwright的组合成为企业级RAG数据采集的黄金搭档:LangChain提供标准化的RAG数据处理链路,Playwright解决动态网页渲染的核心痛点,两者结合能高效采集、结构化处理各类网页数据(动态渲染页、复杂交互页、反爬页),为RAG系统提供高质量语料。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1705

[C++]:6.STL:vector

今天就要开始学vector容器,这节课我们主要学习vector中经常会用到的函数,并且给出该函数的模拟实现。话不多说,直接上干货。下面是本章的思维导图,那么,让我们开始吧!

2301_80817679的博客 136

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析

蓝桥杯报名正在火热进行(软件赛报名 2026-10-08—12-18,省赛 2027-04-10),电子学会 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名也已开启(9/23—12/2),全国青少年信息素养大赛算法应用主题赛同步推进——把 LCA 这个模板练熟,正是冲刺这些赛事树型考点的关键一步。所谓「最近公共祖先」:在一棵以某个节点为根的树里,两个节点 u、v 向上追溯,最早交汇的那个祖先就叫它们的 LCA。比如家谱里,你和你表哥最近的共同长辈就是你们的祖父。

IT_Scratch的博客 530

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 335

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 368

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 184

C++ 运行时多态与虚函数机制全面剖析【面试重点】

构成C++ 运行时多态必须是基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,并且派生类必须对该虚函数完成重写/覆盖(Override)。只有基类的指针或引用才能既指向基类对象,又指向派生类对象(切片机制);而只有完成了虚函数重写,派生类与基类才具备不同的函数行为,达到“指向谁就调用谁”的效果。在类成员函数的前面加上virtual关键字修饰,该成员函数就成为了虚函数。public:// 成员函数前加 virtual 修饰,声明为虚函数。

Fuyo_0209的博客 433

C++ 求抛物线的顶点、焦点和准线(Finding the vertex, focus and directrix of a parabola)

已知抛物线方程 $ y = ax^2 + bx + c $,可利用公式求其顶点、焦点和准线。顶点为 $ \left( -\frac{b}{2a}, \frac{4ac - b^2}{4a} \right) $,焦点为 $ \left( -\frac{b}{2a}, \frac{4ac - b^2 + 1}{4a} \right) $,准线方程为 $ y = c - \frac{b^2 + 1}{4a} $。以 $ a=5, b=3, c=2 $ 为例,计算得顶点 $(-0.3, 1.55)$,焦点 $(-0

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 163

c++ 超级大坑未定义行为如何避免(下)

尤其是通过。

拒绝AI文,努力在AI时代写出感动人心的好文章 141

华为校招笔试真题 10.28 - 稀疏整数求和(C++/Py/Java /Js/Go)

华为非AI笔试 10月28号真题,华为笔试第二题【稀疏整数求和】,提供详细思路讲解以及Java、C++、Python、Go、JavaScript多语言代码实现。华为非AI笔试笔试真题【稀疏整数求和】多语言题解。

qq_45776114的博客 613

C 语言指针与输入输出

指针是 C 语言的魂,输入输出是和人交互的入口。这篇文章把"变量在内存里到底长什么样"讲透,接着用代码验证原码/反码/补码为什么非用补码不可,再拿进制转换、数组、printf/scanf 的格式符收尾。所有输出都是本机 gcc 真实跑出来的。

2401_89953644的博客 151

从“不照人”到“剂量达标”:扇叶遮挡式UV-C空气消毒的工程边界与可验证评估框架

人机共存”正逐渐成为家用 UV-C 空气消毒产品的核心卖点。其中一类常见结构,是把 254 nm 紫外线灯置于吊扇扇叶上方,以扇叶盘作为物理遮挡,同时借助风扇强制对流实现空气循环消毒。专利文献对该结构的意图描述相当清晰:消毒平台遮挡紫外线灯朝下发出的光,使光线射向天花板,从而“不会让紫外线辐射到位于吊扇灯下方的用户”。然而,“结构上不直射”与“工程上安全且有效”之间,仍隔着一段需要实测数据来填补的距离。

HANDY09200的博客 684

【C++】【STL】string_OJ题

本文总结了9道C++ STL中关于string的OJ题目,按操作类型分为三组:反转与就地修改(如917、541、151)、计数与查找(如387、125、58)、模拟与大数运算(如415、43、8)。核心技巧包括双指针收敛、字符分类处理、进位控制及边界值处理。所有题目使用同一套源码,在标准库std::string与自定义容器MyString间切换仅需宏定义,验证结果一致性。代码通过随机测试用例与Trace函数逐行比对,确保逻辑正确性,强调接口对齐的重要性。

这里是Cocatrice的博客,感谢大家一直以来的支持和鼓励,如果对C/C++方向感兴趣的话,可以通过主页的微信名片加Cocatrice的好友,也可以通过邮箱:Chen31980094@163.com 联系,一同加油! 4355

C 语言 malloc() 详解与实战 Demo

本文详解C语言malloc()函数,涵盖其语法、内存原理及实战应用。通过动态整数、数组、结构体与链表的Demo,演示如何安全申请、使用与释放内存,强调避免内存泄漏与空指针检查的重要性,帮助开发者掌握动态内存管理核心技能。

tangPHP的博客 361

【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针

C++类与对象知识(面向过程和面向对象的初步认识,类的初步认识,类的访问限定符及封装,类的作用域、实例化,类的对象模型,this指针)

2601_96587588的博客 862

cargo bench 快速上手

是 Rust 内置的基准测试命令,用于。不过,Rust 标准库的#[bench]属性目前仅在版本可用,因此在稳定版(stable)上,社区标准做法是使用框架。

Doublelv 的博客专栏。 337
上一篇: 第一次博客
下一篇: C语言第二课:main调用了test,为什么test看不见main里的变量?
咔_
博客等级 码龄4年 948粉丝 258原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值