24.4.11-13C语言学习笔记|函数、部分结构体【未完待续】

巴拉巴拉~~~哭死,学习啊啊啊啊,学校课好多,只能半夜学了

4.2函数名--特殊的地址:

void fun(int a){
int a=a+1;
printf("%d",a);
return a;
}

 指针函数??

void (*p)(int);

p=fun;

注意:函数名一直是放在”=“左边

考虑:

可以接受信息(几个?每个都是什么类型?)

可以返回信息(返回1个信息,什么类型)

typedef:利于阅读

1、第一个用法

 int len_t;             //len_t是int数据类型的变量

 typedef int len_t ;    //len_t 是int数据类型的别名

 2、第二个用法

#ifdef C64
typedef unsigned int u32;
#else
typedef undigned long u32;
#endif

这段代码是用来定义一个在C语言中使用的无符号整数类型u32。其目的是让代码在特定的编译环境中(C64)使用unsigned int,而在其他编译环境中使用unsigned long。

 

#ifdef#else是预处理指令,用于条件编译,它们允许编译器在编译代码之前做出决策,这是C语言的一个特性。#endif标志着预处理指令的结束。

3、第三个用法

首先:

typedef int *p1;
p1 abc=NULL;

//typedef int *p1;这行代码定义了一个新的类型p1,它是一个指向int类型的指针。也就是说,p1是一个指针类型,它指向一个整数。
//p1 abc; 这行代码声明了一个名为abc的变量,其类型为p1,即abc是一个指向int的指针。
//注意指针初始化防止出现包括程序崩溃数据损坏

 4、区别(typedef和struct)

表现在如何定义方面:

b56cbfe6a689491b89ec7d47001af2b9.png

 

4.3函数承上启下的作用

函数如何获取信息:

  • 从调用者处拷贝到函数空间

巴拉巴拉1:交换两个数

  1. 值拷贝(改变不了) 2.地址拷贝(可以改变)
#include<stdio.h>
void change_1(int a1, int b1) {
	int temp;
	temp = a1;
	a1 = b1;
	b1 = temp;
	printf("1:a1=%d,b1=%d\n", a1, b1);
}
void change_2(int *a2,int *b2){
	int temp;
	temp=*a2;
	*a2=*b2;
	*b2=temp;
	printf("2:a2=%d,b2=%d\n", *a2, *b2);	
} 


int main() {
	int a = 3;
	int b = 4;
	change_1(a, b);
	printf("1:a=%d,b=%d\n", a, b);
	change_2(&a,&b);
	printf("2:a=%d,b=%d\n", a,b);
	return 0;
}

证明了:如何通过函数改变函数外部某变量的值,通过指针

 24.4.13 周六

传递地址的含义(节省空间)

  • 反向更新* 

  • 连续空间的查看

  • 修改连续空间的值

第一个理解:

#include<stdio.h>
void fun(int** p) {
    *p = 11111;
}
int main() {
    int* a;
    fun(&a); //fun的功能是改变改变地址 
    //需要先写出函数传递的东西&a,然后再通过定义的int*a把函数写出来。 
    printf("%d", a);
    return 0;
}

      重审:需要先写出函数传递的东西&a,然后再通过定义的int*a把函数写出来。 

第二个理解:
 

scanf("%d",&a);

第三个理解:

//也是实现反向更新
int fun(struct a *date) {
date->q=222;
//通过地址反向更新某值
}
struct a {
    int q;
    int p;
    int x;
};
int main() {
    struct a luck;
    fun(&luck);
}

传递地址的目的:看、改

a60821d2c25043c48217ed726462406b.png

 

 

巴拉巴拉2:写一个strcpy函数声明

即:从一个地址,拷贝到目标地点

先写写试试呗:

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(五)C++自制植物大战僵尸游戏LoadingScene的实现讲解

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 一、类介绍 游戏启动后就会立即切换到游戏加载场景中。只有游戏资源文件加载完成后&#xff0c;才能进入游戏。Loadingscene类继承Cocos2d-x中的Scene父类&#xff0c;表明Loadingscene是一个场景类。切换到Loadi…

Mathorcup 甲骨文识别

本资源主要包含第2-4问&#xff0c;第一问直接使用传统图像处理即可&#xff0c;需要有很多步骤&#xff0c;这一步大家自己写就行。 2 第2问&#xff0c;甲骨文识别 2.1 先处理源文件 原文件有jpg和json文件&#xff0c;都在一个文件夹下&#xff0c;需要对json文件进行处理…

大数据存储解决方案和处理流程——解读大数据架构(四)

文章目录 前言数据存储解决方案数据集市运营数据存储&#xff08;Operational Data Store&#xff09;数据中心 数据处理数据虚拟化和数据联合虚拟化作为 ETL 或数据移动的替代品数据目录数据市场 前言 在数字时代&#xff0c;数据已成为公司的命脉。但是&#xff0c;仅仅拥有…

读《AI营销画布》品牌企业成长的逻辑(四)

前言 曾几何时&#xff0c;为了销售和品牌这两个扯的一世不可开交&#xff0c;也因为这个在企业里&#xff0c;形成了二个主张派&#xff0c;一派是以为销售为目标&#xff1b;一派是以品牌为目标。最后&#xff0c;&#xff0c;&#xff0c;&#xff0c;也就形成了不同的意见&…

c# .net 香橙派 Orangepi GPIO高低电平、上升沿触发\下降沿触发 监听回调方法

c# .net 香橙派GPIO高低电平、上升沿触发\下降沿触发 监听回调方法 通过gpio readall 查看 gpio编码 这里用orangepi zero3 ,gpio= 70为例 当gpio 70 输入高电平时,触发回调 c# .net 代码 方法1: Nuget 包 System.Device.Gpio ,微软官方库对香橙派支持越来越好了,用得…

学习JavaEE的日子 Day38 网络编程

Day38 网络编程(了解即可) 1. 计算机网络 2. 网络编程 实现多台计算机之间实现数据的共享和传递&#xff0c;网络应用程序主要组成为&#xff1a;网络编程IO流多线程 3. 网络模型 两台计算机之间的通信是根据什么规则来走的(OSI & TCP/IP) 此处简单了解该模型就行《TCP/IP…

Windows瘦客户机系统默认英文?一招改成中文界面

前言 最近发现有很多小伙伴给电脑安装了Windows瘦客户机系统&#xff0c;但开机之后发现系统是英文的&#xff0c;看都看不懂。 今天就给小伙伴们带来更改Windows Thin系统语言的办法。 首先&#xff0c;咱们都知道&#xff0c;更改系统显示语言基本上都是在系统设置或者控制…

Java——类和对象

目录 一.类定义和使用 1.简单认识类 2.类的定义格式 3.注意事项 二.课堂练习 1.定义一个狗类 2.定义一个学生类 3.注意事项&#xff1a; 三.类的实例化 1.什么是实例化 2.注意事项 3.类和对象的说明 四.this引用 1.为什么要有this引用 2.什么是this引用 五.对…

第16章 数据管理组织与角色期望知识点梳理

第16章 数据管理组织与角色期望知识点梳理&#xff08;附带页码&#xff09; ◼ 数据管理和数据治理组织需要足够灵活&#xff0c;才能在不断发展的环境中有效地工作。意识、所有权和问责制度是激励和吸引人们参加数据管理积极性、政策和流程的关键。P432 ◼ 如何了解组织的企…

【Docker】docker原理及使用-1

Docker目录 1️⃣概念2️⃣使用容器的好处2️⃣docker和普通软件启动方式的区别2️⃣docker和传统虚拟机的区别 1️⃣下载安装2️⃣安装步骤 1️⃣必须要掌握的核心概念1️⃣命令2️⃣例子2️⃣练习题目2️⃣进入一下python环境(简洁) 1️⃣解释一下 redis1️⃣docker底层隔离机…

AI大模型探索之路-应用篇12:AI大模型应用之向量数据库选型

目录 前言 一、什么是向量数据库&#xff1f; 二、向量数据库的应用场景 1. 图像检索 2. 推荐系统 3. 自然语言处理 三、向量数据库在AI大模型中的应用 1. 训练数据的索引和检索 2. 特征存储和管理 3. 模型中间结果的存储 4. 长上下文的记录和检索 5. 本地知识库的构…

基于springboot实现购物推荐网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现购物推荐网站系统演示 摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求&#xff0c;创建了一个计算机管…

Python求利率

要求 编写程序计算在给定利率、指定年数的情况下投资的未来值。这个计算公式如下。 使用文本域输入投资额、年份和利率。当用户单击“calculate”按钮时&#xff0c;在文本域中显示未来的投资值&#xff0c;如图所示。 代码实现 import tkinter as tkdef calculate():amou…

Spring Batch

Spring是一个开放源代码的J2EE应用程序框架&#xff0c;由Rod Johnson发起&#xff0c;是针对bean的生命周期进行管理的轻量级容器&#xff08;lightweight container&#xff09;。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题&#xff0c;提供了功能强大IOC、AOP及W…

使用Python爬虫代理IP快速增加博客阅读量

目录 前言 二、Python爬虫代理IP技术简介 1.什么是爬虫&#xff1f; 2.什么是代理IP&#xff1f; 3.为什么使用代理IP&#xff1f; 三、使用Python爬虫代理IP增加博客阅读量的步骤 1.获取代理IP地址 2.模拟多次访问 3.定时任务 四、注意事项 五、总结 前言 随着互联…

金融机构与金融市场监管

金融机构与金融市场监管 中国的金融监管机构银行业监管的必要性银行业监管的基本目标银行业监管的基本内容商业银行的设立审批制度银行业日常监督管理流动性要求资产质量监管合理的内部控制制度风险集中和风险暴漏的监管银行资本风险资本的计算资本充足率的计算 中国的金融监管…

Mobile Tools v2.0 + Example Game

重要提示!如果您已经拥有我们的资产之一,您可以升级到此资产,根据资产的不同,您将获得15%至40%的折扣。 主要功能 包含一个完整游戏,已集成所有功能(广告、成就、排行榜、应用内购买、评价游戏弹出窗口、本地化、每日奖励、交叉促销和通知)。 包括以下独立资产(170美元…

探索数据结构:顺序串与链式串的深入理解

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 串的定义 串是一种特殊的顺序表&#xff0c;即每一个元素都是单独一…

关于机器学习/深度学习的一些事-答知乎问(四)

如何评估和量化深度学习的可解释性问题&#xff1f; 针对深度学习模型&#xff0c;评估指标能够全面衡量模型是否满足可解释性。与分类的评估指标&#xff08;准确度、精确度和召回率&#xff09;一样&#xff0c;模型可解释性的评估指标应能从特定角度证明模型的性能。但是&a…

AI服务平台replicate

Replicate是一个提供优秀AI模型和工具的平台&#xff0c;旨在帮助用户实现各种人工智能任务。该平台汇集了来自各个领域的顶尖模型&#xff0c;涵盖了文本到图像生成、语言模型、图像编辑、超分辨率等多个领域。用户可以通过Replicate平台快速获取和应用先进的模型&#xff0c;…