新人开荒篇2:变量(基本类型,声明,定义,赋值)

C语言变量类型详解(史上最全) C语言变量类型 立即下载

1.摘要

这是新人的第二篇,讲一些变量类型(一笔带过),认识一下,然后讲一下相关修饰(并未详细展开),左值与右值的概念是为了让新人养成编程的思维。当然笔者也肯定有不足之处,望理解并及时指正。

(注:带*的表示萌新刚入手时不必深如研究,有一些深入认识和经验后再次理解)

2.一些基本数据类型

*2.1数据类型抽象化

我们的现实世界中有整数,小数,分数,有理数,无理数等概念,这些都是人为提出的,计算机并不认识,计算机由电路组成,电路中就可以表示有无电流,这里有电流记为“1”,无电流记为“0”(后来人们又有“高电平”“低电平的说法”)(想详细了解可以可以看书《数字逻辑设计》),这使得由0,1组成的二进制天然的成为计算机自己的语言,因此,一切语句最终都要转化为01串(可以回忆一下计算机导论的内容),但这里我们并不详细展开,只在意它的根本,都是0和1,计算机有自己的进制,或者说存储的基本单位——

最小单位bit(比特)  (每位存储0或1)

大一点点的单位Byte(字节) (1Byte=8bit)

再往下就较为熟悉KB   (1KB=1024Byte)

MB,GB,TB同样(此处为接下来做铺垫)

*2.2数据在内存中存储的初步认识和举例

每种编程语言都已经预先给出了一些常见的数据类型(整数int,小数float),而这些类型就必须得有统一的大小规定,C语言中  int 型数据都占 4个字节 ,不足的在前面补0(暂且不严谨的说)

比如 int a=6; 我们知道a的二进制是“110”

那么在内存中存储就是  “00000000  00000000  00000000  00000110”

(这里先不讲原反补的概念,而且导论讲过)

2.3常见数据类型

随便写个代码看看各种数据占的字节数(使用sizeof);

(注:sizeof是运算符,用来求其占据字节数,不是函数)

#include<stdio.h>

int main()
{
	int a1;//常用  “整数 ” 在其他方你可能看到它被define成 i32
	short int a2;
	long int a3;
	long long int a4;//常用 顾名思义 “很长的整数”  其他方你可能看到它被define成 i64
	unsigned int a11;
	char ch1;//常用  “字符型 ”
	unsigned char ch2;
	float f1;//常用   “小数型 ” “浮点型”
	double f2;//常用  “很长的小数 ”约等于更精确的小数  “双精度 ”
	bool b1;//不常用  但会经常接触
		
	printf("int a1字节数:%u\n",sizeof(a1));	
	printf("short int a2字节数:%u\n",sizeof(a2));
	printf("long int a3字节数:%u\n",sizeof(a3));
	printf("long long int a4字节数:%u\n",sizeof(a4));
	printf("unsigned int a11字节数:%u\n",sizeof(a11));
	printf("char ch1字节数:%u\n",sizeof(ch1));
	printf("unsigned char ch2字节数:%u\n",sizeof(ch2));
	printf("float f1字节数:%u\n",sizeof(f1));
	printf("double f2字节数:%u\n",sizeof(f2));
	printf("bool b1字节数:%u\n",sizeof(b1));
	
	return 0;
}

下面是运行结果:

至于每种类型可以表达的数据范围,则可以根据二进制推算,

比如 int 是四个字节,  4x8个bit位,根据乘法原理,可以表示2的(4*8)次幂种,可是实际中由于它也能表示负数,安排第一位为符号位,即第一位为0,表示非负数,第一位为1,表示正数,那么实际表示的非负数就是(0到2的(4*8-1)次幂-1),负数范围为(-  2的(4*8-1)次幂 到 - 1);依照这个规则,我们也可以求出其他数据类型的范围。(具体数值可以查询资料)

2.4数据的其他修饰

*2.4.1电脑中内存的分布

一般分为,栈区,堆区,还有静态区,负责参与运算的迭代器也有一部分内存。其中,栈区存储局部变量(啥叫局部变量,就比如主函数里写的 int a=0;)和函数参数;堆区主要涉及内存操纵的相关函数申请去存储的,可以灵活的运用空间,(比如 malloc,calloc,realloc,free);静态区存储全局变量(啥叫全局变量,int main(){}之前写的int a=0;就是)和静态变量(之后项目举例时再具体介绍)。

2.4.2 const 修饰 与 unsigned修饰

unsigned 修饰有时是为了扩大数据存储的范围,比如一些题目要求数据范围比较大,恰好没有负数,这时就可以使用,此外,对 char 类型,本来应该有256(2的8次幂)种可以表达,实际ASCII码却只有128,其中就保留了符号位,ISO C++标准并没有规定它在默认不加修饰的情况是有无符号,因编译环境而异。

const 修饰,表示这是一个说一不二的常量,或者更通俗讲,常数,比如 2是一个常数,比如π,我们也许不知道他是多少,但它不变,不同使用场景要求精度不同。我们可以像下面这样定义一个π,在这句之后,程序遇到的PI 都回当3.14 进行处理,当工程要求的精度更高时,我们不可以像这样修改,否则就不叫“常量”,但我们可以直接在const这处语句 改为3.1415 。如果不定义这样的常量,代码中莫名出现的数字很可能不知道含义,而且一旦修改,还要连续修改好几处使用了这个量的值,这就是const给我们提供的方便之处。

(另:常量只能用常量去定义)

const float PI = 3.14;  //定义PI表示的值就是3.14(const 和 float 位置可以对调)
//但当然,常量定以后就不能修改,如:
PI=3.1415;   //err

*2.4.3 其他修饰

auto,static,extern,register

函数中的局部变量默认为auto型,也可以显式的进行声明;

extern,“外部声明变量”,可以扩展变量的使用范围,这在多文件的项目中时会用到;

static静态区,与动态的存储相对应,这部分的内容不被释放,赋值等操作后仍然静止在那里,等待你下一步对他操作;

register,"寄存器变量",声明后使其在寄存器中占一席之地,避免了计算结果过多的传递,提高效率,实际上编辑器会帮你做出优化,使用并不多;

还有比如上述关键字有时可以多个一起使用,比如 static extern int num;

3  C语言“ = ”的理解

3.1声明与定义

变量在使用前都要首先声明其类型和名称,我们不妨用汉语表述,如:

“小花是一头牛,张三是一个村民”

这就可以说是一个声明,声明了两个对象“小花”,“张三”,但他们的类型不同,前面是一种动物,后面是一种人,不同对象有不同的处理方式,能够进行的操作也不相同。

比如再接一句

“张三带着小花到河边吃草”,

如果没有前面那句声明,理解起来会多么可怕呀(在日常生活中,往往遍布着的是“名词”,出现名字一般判定为人名,在编程语言中,我们要扭转这种思维,区别两个对象的不同之处,并在声明上进行区分)

(声明要指定对象类型 以及 名称)

下面是一些声明的举例:

char ch;
int num,total;
float v,r,m;

但值得注意的是,声明了,并不意味着引起内存的分配,就比如我声明了张三是个村民,但他长啥样?有多少钱?干啥的?一概不知,张三并不在我心里,这种未知情况下驱使它有时是危险的,我让张三去放牛,我哪知道他是个瘸子啊。

数据的使用也是一样,为了程序尽可能安全且符合预期,我们必须保证所有变量在使用前都经过定义,或者被输入一个合法的值。

上述代码中直接给他们一个值就是定义:

(注:声明时有初始值就叫定义,定义和赋值不一样)

char ch  = 'a';  //字符类型要加单引号
int num = 1, total = 2;
float v = 0,r = 3.2, m = 6.88;

3.2 赋值的初步理解

在上述代码中,我们让ch,num等变量有了初始值,但这还不足以让我们与数学进行区分。

数学里,代表值相等,是形容两数或两式关系的。

而计算机语言,是形容将这个 量 放进相应名字的 地址 上,存储相应的信息。

早期学习者可以先这样理解,把不同的液体,倒入相应的杯子里。

比如写让两个数交换的程序:

#include<stdio.h>

int main(){

int a = 13;  //a瓶子里装着酱油
int b = 29;  //b瓶子里装着醋
printf("a = %d  b = %d\n",a,b); // 打印一下看看

int c = a;   //找来c瓶子 ,把a瓶装的酱油倒进去
a = b;       //把 b瓶子中的醋 倒入a瓶
b = c;       //再把 c瓶装着的酱油 倒入 b瓶

printf("a = %d  b = %d\n",a,b);  //打印验证交换结果

return 0;
}

这样理解也未尝不可,但随着日益深入,我们要知道它相当于是把瓶子倒掉再灌入,或者说“覆盖”

3.3 左值与右值

事实上,计算机的计算使用寄存器,而且寄存器件可以通过内部电路互相读写,这就需要汇编语言才能更好理解,这里目的是介绍左值右值的思想,不详细展开。

以代码举例:

int a, b, c, d;
int main(){
    a = 4;
    b = 2;
    c = 3;
    d = (a + b) * c;
    retrun 0;
}

前三个完成了定义的变量实际操作是:

(其实是汇编语言描述了一下,新人建议先不要急着进行)

“把对应格式的值写入对应的地址”

后面却不然,概括讲是:

“分别将 a , b取出来存到两个寄存器上”

“对二者执行相加,并把加法结果存在其中一个寄存器上”

“把c 取出来存到寄存器上”

“对这两个寄存器做乘法,并将结果存储到相应寄存器”

“将寄存器中结果写入相应的d的地址”

这步中,d位于等式左端,a,b,c组成的算式放在右端。

一般意义上我们对 ‘ = ’ 左端叫左值,右端叫右值,

事实上,左端的变量才会长期出现在内存中,而右端是短期的迭代器中的运算,并没有实际的改变右端的'a'或其他变量的值。了解了这个特点,我们才能理所当然的把我们要修改的值放左边,抽象的计算过程放右边。

从这个角度看,我们不妨对上面交换两数换种写法,试试不创建临时变量,交换两数。

#include<stdio.h>

//这里是为了新人刚入手理解而做出的朴实的解释,大佬们不要浪费时间
int main(){

int a = 13;  //定义 整型 a的值是13
int b = 29;  //定义 整型 b的值是29
printf("a = %d  b = %d\n",a,b); // 打印一下看看

//每次要修改的值如果是直接把另一个赋值,必然覆盖掉原有内容
//所以第一次可以存表达两数关系的值,这里比较安全的是“和”

a = a + b;       //把a与b的和赋值给a

//a=a0+b0    b=b0
//因为刚刚修改过a,下一次赋值语句不可能还是a
//于是根据上面的式子思考对b赋值的表达式,“我希望b赋值为原来的a”

b = a - b;       //把a与b的差赋值给b

//另一个想法是代还   b= (a+b)-b    ==a
//b换好了,接着换a

a = a - b;       //把a与b的差赋值给a

//和上面b的赋值类似

printf("a = %d  b = %d\n",a,b);  //打印验证交换结果

return 0;
}

当然,你如果不够萌新,那么你能够发现问题,这里给新人留下一点疑问:

什么情况下,上述代码会出现问题,为什么?(后续我们还会进一步讨论)

4.总结

这次的内容主要初步了解数据类型,一些类型名的修饰,当然,这些东西在真正进入相应项目前,你可能会觉得,这些类型有什么用?又或者,只有这些就够描述世界了吗?这些都要放到后续去拓展,这里只需要你记住有这些类型即可。内存理解后面也会逐步渗透,这是学C的“内功”,会提高你的上限,讲左值与右值是为了培养新人的思维方式,习惯计算机中的编程。

偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记 ①模型整体拟合指标(Goodness-of-Fit, GOF),这个可以看做整体的R方了,上限是1;②指标载荷的具体值;然而,当数据中包含潜变量(即由多个观测指标组合而成的综合概念)时,贝叶斯结构方程不太适用。指标过少(1-2 个)会削弱潜变量的解释力,而指标过多可能增加噪声,影响模型稳定性。如果指标较多,可考虑进一步划分潜变量,但应确保每个指标有意义。掌握这两类方法后,在处理多变量、因果或路径分析研究时,可以根据数据特点与研究需求灵活选择。对于一般的多变量研究,这两类结构方程均为常用且有效的分析方案。 阅读详情

相关推荐

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

C语言变量类型

这里写自定义目录标题C语言的指针内存的相关操作新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 C语言的指针 C语言是汇编之上最靠近硬件操作的语言,其中最重要的一点便是指针,指针是C语言操作内存的利器,学好指针对理解其它语言

du_dgwt的博客 2862

Python与numpy版本兼容性排查指南

本文详细解析了Python与numpy版本兼容性问题,提供了快速诊断和解决版本冲突的实用方法。通过查看版本信息、使用官方兼容性对照表以及降级或升级环境等方案,帮助开发者有效避免常见的报错问题,如'ImportError'和'AttributeError'。文章还介绍了使用虚拟环境和requirements.txt等工程实践,确保项目依赖的稳定性。

weixin_29089057的博客 319

初学c语言数据类型——变量

类型变量名。比如intxinty这是把x和y定义成整型变量整型变量整型变量是一种计算机语言。在c语言中,整型变量的值可以是十进制,八进制,十六进制,但在内存中存储着是二进制数。变量顾名思义是数值可以变的量,整型变量表示的是整数类型的数据。整型变量的分类整型变量分为基本整形(用int定义),短整型(short或shortint定义),长整型(long或longint定义),无符号型。intx,y,z;x=1;y=2;u=3;z=x+y+u;return0;}...

爱小杨的博客 1万+

E4A蓝牙APP开发实战:从零到一构建简易物联网控制终端

本文详细介绍了使用E4A(易安卓)开发蓝牙APP的实战教程,从零开始构建简易物联网控制终端。通过E4A的中文编程环境和内置蓝牙组件,开发者可以快速实现智能家居控制、创客项目遥控等功能。文章涵盖硬件准备、开发环境搭建、核心代码解析及典型应用场景,特别适合零Java基础的电子爱好者入门蓝牙APP开发。

weixin_42715608的博客 476

抖音视频数据获取实战:从API调用到热门内容挖掘

通过抖音API获取视频数据,企业可快速构建数据驱动的运营体系。本文提供了从权限申请到商业落地的全流程指南,建议结合自身业务扩展功能。如有技术问题,欢迎​​评论​​区留言讨论!#抖音开发 #数据挖掘 #短视频运营 #API调用 #Python实战。

WBKJ_Noah_的博客 6399

c语言基础-变量类型和定义

c语言基础-变量类型和定义 一、常量与变量 常量:固定的一个值 例如1 2 3 A B 变量:一个固定的内存地址,其中存储的值可以变化,这个地址的名字在程序体现就是变量 例子: #include “stdio.h” int main(void) { int a = 6; // a 是一个变量 = 赋值号 6 是一个常量 // 将常量6赋值给变量a a = 7; // 变量的值是可以修改的 return 0; } 二、变量的命名规则 1、变量名由字母、数字、下划线组成 2、不能以数字开头

阳光小麦 8279

RK3588开发笔记-Buildroot编译Qt5WebEngine-5.15.10

Rockchip RK3588是一款强大的多核处理器,广泛应用于边缘计算、人工智能、嵌入式系统等领域。为了在RK3588上运行自定义的Linux系统,并使用Qt5WebEngine进行Web内容渲染,Buildroot是一个非常合适的工具。本文将详细介绍如何使用Buildroot编译并配置Qt5WebEngine-5.15.10。Qt5WebEngine是Qt框架中的一个模块,它提供了一个功能强大的Web浏览器引擎,允许开发者在Qt应用程序中嵌入和显示现代网页内容。

flypig has a dream! 1158

C语言变量定义与类型【局部变量、全局变量、形式参数】

C语言之变量详解 变量的定义 对于一般变量的解释,我们从字面意思上可以理解为允许对其值进行改变操作的量,是对某一对象值进行便于理解使用的名称。这么说可能有点不太明白,就比如说我们的身份证,在某种程度上就是一种变量,每一个身份证号(变量)都代表了一个确切的人(值),人可以有不同的发展,外界可以对其有不同的影响,但是一旦我们提到这个身份证号,那么便是唯一的指向这个本体。而在我们的C语言中,我们常将变量理解为内存中的一个命名的位置,存放一个可以被修改的值 变量在使用之前一定要先进行声明(告诉大家有这个东西存在,且

dream_i_success的博客 3214

AutoSAR配置视频讲解:简介

AutoSAR实验视频讲解:闪烁一颗LED实验【简介】 大家好,欢迎来到雪云飞星的《AutoSAR实验课的视频讲解》专栏。看过《AutoSAR入门到精通系列讲解》的朋友们应该对博主不陌生,有很多朋友加了博主的微信成为了好友,还有朋友约过线下见面,博主很高兴大家能从我的博客中获得一些收获。在专栏里博主挖了很多坑,当时也说过想要录制一个AutoSAR的配置视频教程,素材在20年初就已经录好,中间各种原因足足鸽了一年。当时因为一些技术原因只能通过博客的图文形式展示出来,现在我们剪辑了视频,请了专业的配音,希望以视

雪云飞星的博客 9654

IoT安全软件:Forescout二次开发_Forescout基础架构与原理

Forescout平台是一个集成了多种安全功能的综合解决方案,旨在帮助组织管理和保护其网络中的IoT设备。该平台通过自动发现、分类和监控网络中的设备,提供实时的安全可见性和控制。Forescout的核心优势在于其能够处理混合环境中的各种设备,包括传统IT设备、IoT设备和OT设备。Forescout平台由多个核心组件组成,每个组件负责特定的功能。了解这些组件的运作机制是进行二次开发的基础。假设我们需要定义一个策略,禁止所有厂商为XYZ的设备访问互联网。选择策略类型。

chenlz2007的博客 1965

C语言的变量类型

整形变量 1、int型(整型) int只占用一个字节,主要是用来存储整数,存储的范围为:(-2)的31次方~2的31次方-1。 比如如下一个求圆的周长和面积的程序: include&lt;stdio.h&gt; main(){ int r; int c; int s; scanf("%d",&amp;r); c=pir2; s=pi*r^2; printf(“c=%d”,c); printf(“s...

gongyu_1的博客 6312

第4篇:使用 NModbus 库快速搭建 Modbus TCP 通信(从零开始用 C# 开发 Modbus 上位机)

本文介绍了如何使用 NModbus 库快速搭建 Modbus TCP 上位机通信程序。通过安装 NModbus4 NuGet 包,开发者可以轻松实现 Modbus TCP 连接,无需手动处理底层协议细节。文章详细演示了核心功能实现: 创建 TCP 客户端连接设备 读取保持寄存器(功能码0x03) 写入单个寄存器(功能码0x06) 关闭连接释放资源 提供完整C#示例代码,包含初始化连接、数据读写等关键操作,帮助开发者快速构建Modbus TCP通信应用。相比手动实现,NModbus库大幅简化了开发流程,特别适

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1046

4.1 Scala开荒_变量

文章目录1 变量1.1 变量的介绍1.2 “ + ” 的使用1.3 数据类型1.3.1 整数类型1.3.2 浮点类型1.3.3 字符类型1.3.4 Boolean1.3.5 Unit 类型、 Null类型、Nothing类型1.4 值类型的转换1.4.1 值类型隐式转换1.4.2 强制类型转换1.4.3 值类型和String类型的转换1.5 标识符的命名规范 1 变量 1.1 变量的介绍 变量详相当于内存中的一个数据存储空间的表示, 可以理解为门牌号 -----> 房间 通过变量名可以直接访问到变量

ifeng 231

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

新人开荒篇3:函数与标准输入输出(学习使用库函数)

本文章简单阐述了什么是函数,以及库函数,并对scanf和printf进行了学习使用示范,讲述了c++官网的查询和使用方法,旨在培养新人学习能力。库函数(Library Functions)是预先编写好的函数,它们通常被组织在代码库或函数库中,供程序员在编写软件时调用。这些函数实现了一些常见的、通用的任务,比如字符串处理、数学计算、文件操作等,从而避免了重复编写相同代码的需要。而这些C语言的库函数在不同的C语言规范下可能会有所不同,但核心的库函数通常是相似的。

lyyg050625csjk的博客 937

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

《第五课——C语言变量:从Java的“温室花朵“到C的“荒野求生“——内存管理の残酷物语》

当Java程序员告别JVM的温柔怀抱,踏入C语言的原始丛林,变量不再是衣来伸手的"对象少爷",而是需要亲自开荒的"内存拓荒者"!本文将用**硬核对比+生存指南**形式,揭秘C变量的**花式定义技巧**、**作用域潜规则**、**存储类黑魔法**,以及那些让Java程序员瞳孔地震的**未初始化地雷**。文末附赠**变量作死案例集锦**,保你在笑声中领悟内存管理的真谛!

qq_39078783的博客 572

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[教程技巧] 行走于Swift的世界中

原文链接:http://udn.yyuap.com/thread-11792-1-1.html 从Swift正式公布到现在,我基本一直在关注和摸索Swift。对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候,资料的缺失和细节的隐藏也让人着实苦恼。最近几天的感受是,Swift 并不像我上一篇表达自己初步看法的文章里所说的那样,相对于 objc 来说有更好的学习曲线。甚至

cookcooker的博客 385

HarmonyOS 6互联网家装平台ArkTS 现代家装应用架构深度解析,由 breath 布尔状态驱动,合同列表的增删改由 @State 数组的 unshift/splice/属性赋值触发自动渲染

健身管理类应用与之前分析的外卖、招聘等应用有本质差异——它的核心数据不是"交易"或"任务",而是"时间序列的身体状态数据":每次训练有时长、卡路里、组数、重量;每次饮食有热量、蛋白质、碳水、脂肪;每周有运动时长趋势图。这些数据的共同特征是"随时间积累,用户需要横向对比和趋势分析"。这导致健身App的数据层设计必须从第一天就考虑"历史数据查询"和"多维度聚合"的需求,而非仅关注当前单条记录的增删改查。健身应用的用户行为模式也有独特之处:用户使用健身App的目标是"坚持",而不是"一次性完成任务"。这意味着激励

jin123322的博客 214

Jasna 视频修复检测模型选型:rfdetr-v6、YOLO 与 VR180 专用模型怎么选

Jasna 视频修复里,检测模型选错的代价很直接:马赛克边缘漏掉修不全、正常画面被误修、AMD 用户跟着 NVIDIA 默认路线跑却越跑越慢。这篇横评给你一套选型标尺、一张候选全景表和官方基准数据,读完能直接带走"场景 → 模型 → 阈值"的完整决策链。 ## 先把标尺立起来:选型就看四个维度 - **找得准不准**:马赛克区域是否完整框出,掩码是否贴边,会不会把正常画面框进来——这一步决定了

gitblog_00412的博客 770

基于HarmonyOS API 24家政保洁应用开发详解:从界面布局到业务逻辑的每一个实现细节,帮助开发者掌握类似 O2O 服务类应用的核心开发模式

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2501_92093170的博客 133

基于HarmonyOS API 24实战解析房屋装修管理应用Scroll+Column 纵向滚动;双层 Row 进度条;三行结构(标签+进度+数据)实现预算 Tab切换

本文将对一个完整的 HarmonyOS ArkTS 班级管理助手应用进行逐段源码深度剖析。该应用面向中小学班主任或班级管理者的日常教务场景,将学生信息管理、课程表展示、考勤记录追踪、成绩统计分析四大核心功能模块统一收纳在一个 入口组件中,通过底部 进行模块切换。采用单文件架构(single-file architecture),将数据模型层、常量配置层、Mock 数据工厂层、业务计算函数层与 UI 渲染层全部内聚于同一编译单元内,这种组织方式在中小型 HarmonyOS 应用中非常常见,既能保证代码的可

2301_79516720的博客 92

HarmonyOS 6 效果实现 Overlay 悬浮图层在页面最顶层添加全局提示浮窗无需嵌套容器实现方案

在鸿蒙应用开发的世界里,ArkTS 作为首选的 UI 开发语言,承载了声明式开发、状态驱动、组件化架构等现代前端框架的核心思想。不同于传统的命令式编程,声明式 UI 让开发者专注于"描述界面应该是什么样子",而非"一步步告诉系统如何绘制界面"。这种范式的转变,在复杂的电商类应用中体现得尤为明显。本文所要解析的这个应用,是一款面向居家业主的家庭酒柜/吧台/微醺角落改造设计服务应用。它涵盖了吧台整装、恒温酒柜、调酒师预约、组合套餐、社区晒图等完整业务链路,采用勃艮第酒红搭配暗金与墨黑的深色轻奢风格,整体视觉呈现

wilbur1688的博客 330

C语言动态内存分配:malloc与calloc的核心区别与实战选型指南

动态内存分配是C/C++编程中的核心概念,它允许程序在运行时按需申请和释放内存,突破了静态数组在编译时必须确定大小的限制。其原理是通过操作系统提供的堆(Heap)内存管理机制,程序可以调用特定函数从堆中获取内存块。这项技术的核心价值在于提升内存使用效率与程序灵活性,避免了静态分配可能造成的空间浪费或不足。在应用场景上,动态内存广泛用于处理可变长数据(如字符串、文件内容)、构建动态数据结构(如链表、树、图),以及实现资源按需加载的模块。本文聚焦于C语言中两个最基础且易混淆的动态内存分配函数——malloc与c

weixin_30940783的博客 304

c#基础(字符串方法Math类Random随机数)

我先用一张表把目前最常用的主流语言和它们的核心战场列出来,这样一目了然:光看表可能还不够直观,我们深入几个关键场景看看,为什么它们“画风”如此不同:在AI领域,Python几乎等于“标准”。从深度学习框架(如PyTorch、TensorFlow)到数据处理(pandas、NumPy),整个技术栈的顶层接口基本都是Python写的。你甚至可以这么理解:在AI领域,Python就像是“操作系统”一样的存在。它的优势在于开发效率极高,语法简单,非常适合数据科学家快速验证想法。虽然它本身运行速度不如C++快,但核心

weixin_56893328的博客 371

C&C++程序设计期末复习总结

为复习更加高效,总结了一些比较重要和常用的语法,为之后的期末考试做准备。目录输入与输出表达式语句控制结构函数指针结构体线性表删除链表顺序建表逆序建表排序构建线性表线性表长度查找元素删除指定位置的节点删除包含特定数据的节点文件文本文件二进制文件 fread 函数关闭文件文件流操作文件打开文件读写文件文件关闭文件流操作二进制文件的读写写二进制文件读二进制文件C++的输入输出控制太难背了,所以,我直接不总结了。我认为C++能做的,C的输入输出功能应该也能做,并且,用scanf输入

gao20041015的博客 669

HarmonyOS ArkTS API 24家居装修预算管理函数返回一个 BudgetOverview 对象,这个对象在BudgetTab和StatsTab两个组件中被作为@State初始值使用

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 182
上一篇: 新人开荒篇1:C 语言的初步认识与调试的使用
下一篇: 新人开荒篇3:函数与标准输入输出(学习使用库函数)
工程穿山钾
博客等级 码龄3年 79粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值