C/C++ 学习日记第一棒(数据类型)

本文深入探讨了C语言中的数据类型、内存管理、指针应用等核心概念。解析了数组与指针的区别,void指针的作用以及如何通过指针间接修改变量。同时讨论了变量的本质及其与内存的关系。

1- 数据类型的本质:固定大小内存块的别名。

2- 压死初学者的三座大山抓狂抓狂:a 和 &a 数组数据类型(定义一个1 数组类型; 2数组指针; 3数组类型和数组指针类型的关系)。

代码:

void main(){
    int a;    //告诉 C 编译器分配4个字节的内存
    int b[10];//告诉 C 编译器分配40个字节的内存
    printf(" b: %d,  b+1: %d,  &b: %d,  &b+1:%d \n",b, b+1, &b, &b+1);
}
>b: 1244972,  b+1:1244976,  &b:1244972, &b+1:1245012
解析:b+1 和 &b+1 结果不一样,是由于 b 和 &b 所代表的数据类型不一样。

          b 代表的是数组首元素的地址;&b 代表的是整个数组的地址。所以 b+1 内存增加4个字节,而 &b+1 内存增加40个字节。

3- void 指针的意义

(1)C 语言规定只有相同类型的指针才可以相互赋值;

(2)void* 指针作为 值用于“接收”任意类型的指针;

(3)void* 指针作为 值赋值给其他指针时需要强制类型转换:

int *p1 = NULL;
char *p2 = (char*)malloc(sizeof(char)*20) ;
4- 不存在 void 类型的变量:C 语言没有定义 void 究竟是多大内存的别名。

5- 变量的本质

(1)程序通过变量来申请和命名内存空间 int a=0;

(2)通过变量名访问内存空间。变量的本质:(一段连续)内存空间的别名(是一个门牌号)。

(3)修改变量有几种方法?

  a- 直接。

  b- 间接。内存有地址编号,拿到地址编号也可以修改内存!牛!

代码:

void main(){
    int a;
    int b;
    char *p;
    a=10;//直接赋值
    printf("&a: %d\n", &a);

    //间接赋值==》直接通过内存,首先输出 a 的地址,得知 a 的地址为1245024
    *((int*)1245024) =200;
    printf("a: %d\n", a);
   
    //间接赋值==》通过指针 
    p = 1245024;
    *p = 300;
    printf("a: %d\n", a);
 }
>&a: 1245024

  a:200

  a:300

6- 数据类型和变量的关系?

> 通过数据类型定义变量。

7- 总结及思考

(1)通过变量往内存读写数据;

(2)不是向变量(而是向变量所代表的内存空间中)读写数据。问:变量跑哪去了?

思考1:变量三要素(名称、大小、作用域),变量的生命周期?

思考2:C++ 编译器是如何管理函数1,函数 2 变量之间的关系的?

====》引出两个重要话题:

内存四区模型

函数调用模型


农业作物成熟度实例分割数据集 一、基础信息 • 数据集名称:农业作物成熟度实例分割数据集 • 图片数量: 训练集:563张图片 验证集:161张图片 测试集:80张图片 总计:804张图片 • 训练集:563张图片 • 验证集:161张图片 • 测试集:80张图片 • 总计:804张图片 • 分类类别: bfullyripened: b类作物完全成熟状态 bgreen: b类作物绿色未成熟状态 bhalfripened: b类作物半成熟状态 lfullyripened: l类作物完全成熟状态 lgreen: l类作物绿色未成熟状态 lhalfripened: l类作物半成熟状态 • bfullyripened: b类作物完全成熟状态 • bgreen: b类作物绿色未成熟状态 • bhalfripened: b类作物半成熟状态 • lfullyripened: l类作物完全成熟状态 • lgreen: l类作物绿色未成熟状态 • lhalfripened: l类作物半成熟状态 • 标注格式:YOLO格式,包含实例分割多边形点标注,适用于实例分割任务。 • 数据格式:图片来源于农业图像数据库,细节清晰,适用于模型训练。 二、适用场景 • 农业AI监测系统开发:数据集支持实例分割任务,帮助构建能够自动识别作物部分并分类成熟度的AI模型,辅助农民进行精准农业管理。 • 精准农业应用研发:集成至农业智能平台,提供实时作物状态识别功能,优化灌溉、施肥和收获时间。 • 学术研究与创新:支持农业科学与人工智能交叉领域的研究,助力发表高水平农业AI论文。 • 农业教育与培训:数据集可用于农业院校或培训机构,作为学生学习作物识别和成熟度评估的重要资源。 三、数据集优势 • 精准标注与多样性:每张图片均经过精确标注,确保实例分割边界准确,类别分类正确。涵盖两种作物类型(b和l)和三种成熟度状态(完全成熟、绿色未成熟、半成熟),具有高度多样性,提升模型泛化能力。 • 任务适配性强:标注兼容主流深度学习框架(如YOLO等),可直接加载使用,支持实例分割任务,并可扩展到其他计算机视觉任务。 • 农业价值突出:专注于作物成熟度检测,为智能农业、自动化收获和作物健康监测提供关键数据支持,具有重要的实际应用价值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值