Day04_C语言基础数据结构重点复习笔记20250618

1.什么是计算机的大小端存储?

答:大端是数据的高位字节存储在低地址,低位字节存储在高地址,网络协议(如TCP/IP)通常采用大端序(称为“网络字节序”)。例如:32位整数 0x12345678 在内存中的存储(地址从左到右递增):

地址:0x100  0x101  0x102  0x103
数据: 12       34        56        78
数据的低位字节存储在低地址,高位字节存储在高地址。x86、ARM等常见CPU默认采用小端序。32位整数 同一整数 0x12345678 在小端下的存储:

地址:0x100  0x101  0x102  0x103
数据: 78        56        34         12

2.如何判断大小端存储?(如何分辨如上图所示)

int a = 0x12345678;
char *p = &a;
if(*p==0x78){printf("小端存储\n");}else{printf("大端存储\n")}char c = (char)a;
if(c==0x78){printf("小端存储\n");}else{printf("大端存储\n")}union A
{int n1;short n2;
}a1;
a1.n1 = 0x01345601;
if(a1.n2==0x5601){printf("小端存储\n");}else{printf("大端存储\n")}union 
{int a;long int b;char str[13];
};    //16

3.arr和&arr的区别

01.&arr 表示整个数组的地址,它的类型是指向整个数组的指针。尽管 &arr 和 arr 的数值相同,但它们的类型不同,指针运算的步长也不同。

02.&arr 和 arr 的数值相同,都指向数组起始位置。
arr + 1 是指向下一个元素的地址,由于 int 类型通常占 4 字节,所以地址偏移 4 字节。
&arr + 1 是指向下一个同类型数组的地址,偏移量是整个数组的大小,即 5 * 4 = 20 字节。

arr是数组的首地址,需要用一级指针指向

&arr是整个数组的地址,需要用二级指针指向

4.解释数组指针、指针数组、函数指针和指针函数的区别

01:数组指针
定义:数组指针是指向数组的指针,它指向的是一个数组,其类型是指向特定类型和长度数组的指针。
语法:type (*ptr)[size];,其中 type 是数组元素的类型,size 是数组的长度,ptr 是数组指针变量名。

解释:ptr 是一个数组指针,指向 arr 数组。使用 (*ptr)[i] 来访问数组元素,*ptr 先解引用得到数组,再通过 [i] 访问对应元素。

02.指针数组

定义:指针数组是一个数组,数组中的每个元素都是指针。
语法:type *arr[size];,其中 type 是指针指向的数据类型,size 是数组的长度,arr 是指针数组名。

解释:ptr_arr 是一个指针数组,数组中的每个元素都是 int 类型的指针,分别指向 a、b、c 变量。通过 *ptr_arr[i] 解引用指针访问对应变量的值。

03.函数指针

定义:函数指针是指向函数的指针,它存储的是函数的入口地址,可以通过函数指针调用函数。
语法:return_type (*ptr)(parameter_list);,其中 return_type 是函数的返回类型,parameter_list 是函数的参数列表,ptr 是函数指针变量名。
解释:func_ptr 是一个函数指针,指向 add 函数。可以像调用普通函数一样使用 func_ptr(3, 4) 来调用 add 函数。

04.指针函数

定义:指针函数是返回指针的函数,即函数的返回值是一个指针。
语法:type *func_name(parameter_list);,其中 type 是指针指向的数据类型,func_name 是函数名,parameter_list 是函数的参数列表。
解释:get_array 是一个指针函数,返回一个指向 int 数组的指针。在 main 函数中接收该指针并通过它访问数组元素。

数组指针:本质是指针,指向一个数组。
指针数组:本质是数组,数组元素为指针。
函数指针:本质是指针,指向一个函数。
指针函数:本质是函数,返回值为指针。

5.char str[]="hello\01"; printf("strlen(str)");的结果

输入结果为:6

解析:

在字符数组 str 中,字符依次为 'h'、'e'、'l'、'l'、'o'、'\01',接着是字符串结束符 '\0'。由于 \01 并非字符串结束符,strlen 函数会把它当作普通字符计数。所以,str 中有效字符有 6 个,strlen(str) 的结果为 6。

6.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求原来它一共摘了多少个桃子。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int n)
{                                                   if(n==10){return 1;}return (fun(n+1)+1)*2;}
int main(int argc, const char *argv[])
{printf("猴子原来一共摘了%d个桃子\n",fun(1));return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于OpenSSL实现AES-CBC 128算法的 SeedKey DLL的生成与使用

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

进程间通信、线程间通信

进程间通信、线程间通信 进程间通行&#xff08;Inter-Process Communication&#xff0c; IPC&#xff09;和线程间通信&#xff08;Thread Communication&#xff09;的方式不完全相同&#xff0c;因为进程和线程的运行环境和特性不同 进程和线程的本质区别 进程 进程是操…

【FPGA学习】FPGA入门学习即数字逻辑复习

前言&#xff1a;最近开始学习FPGA了&#xff0c;希望通过博客记录下每一次学习的过程&#xff0c;与大家共勉。 目录 一、组合逻辑电路的设计&#xff08;工程学习引入&#xff09; 二、3-8译码器设计、下载和功能演示&#xff08;在的8段数码管显示&#xff09; 2.1 Logs…

ffmpeg python rgba图片合成 4444格式mov视频,保留透明通道

def convert_pngs_to_mov(input_pattern, output_path, frame_rate30):"""将BGRA四通道PNG序列转换为ProRes 4444编码的MOV视频&#xff08;保留透明通道&#xff09;参数:input_pattern: PNG序列路径模式&#xff08;如&#xff1a;"/path/to/frames/fram…

Java 实现 PDF 转图片功能:实战教程 + 场景解析

作者:云起川南|专注 Java 实战与自动化集成 在 PDF 文档处理的各类业务场景中,“将 PDF 页面转为图片”是一个高频、刚需的功能,广泛应用于 预览展示、文件归档、图片加密水印、OCR 文本识别 等系统中。 本文将带你一步一步实战如何使用 Java 实现 PDF 转图片 功能,使用开…

面试题-有个对象key全部是string,值全部是number要定义他,不使用interface和type如何定义

在 TypeScript 里&#xff0c;若要定义一个键为string类型、值为number类型的对象&#xff0c;并且不使用interface和type&#xff0c;可以采用以下几种方式&#xff1a; 1. 内联类型注解&#xff08;Inline Type Annotation&#xff09; 直接在变量声明时使用索引签名进行类…

领域驱动设计(DDD)【3】之事件风暴

文章目录 说明一 事件风暴理论知识1.1 事件风暴的核心目标1.2事件风暴的关键步骤1.2.1 准备工作1.2.2 核心流程1.2.3 事件风暴的输出 1.3 事件风暴的优势1.4 常见问题Q1&#xff1a;事件风暴适合所有项目吗&#xff1f;Q2&#xff1a;事件风暴后如何落地&#xff1f;Q3&#xf…

Vue3中监听 Ref 类型的数字数组

在 Vue 3 中&#xff0c;监听一个 Ref 类型的数字数组&#xff08;如 ref<number[]>([])&#xff09;时&#xff0c;根据需求的不同&#xff0c;有几种监听方式&#xff1a; 1. 监听整个数组的引用变化 当整个数组被重新赋值时触发&#xff1a; typescript 复制 下载…

PoolThreadCache 类的结构和源码实现

PoolThreadCache 在 Netty 的内存池中扮演着线程本地缓存的角色。它的主要目的是减少线程在分配内存时对全局 PoolArena 的竞争&#xff0c;通过缓存一部分最近释放的内存块&#xff0c;使得同一线程后续申请相同规格的内存时能够快速获取&#xff0c;从而提高分配效率。 下面…

Linux中的阻塞信号与信号原理

在Linux操作系统中&#xff0c;信号&#xff08;Signal&#xff09;是进程间通信和进程控制的核心机制之一。信号是一种异步通知机制&#xff0c;可以向进程发送异步事件通知&#xff0c;以便进程能够处理系统级别的事件。本文将详细探讨Linux中的信号原理&#xff0c;重点讲解…

QT学习教程(三十五)

事件处理&#xff08;- Event Processingn&#xff09; 事件是视窗系统或者Qt 本身在各种不同的情况下产生的。当用户点击或者释放鼠标&#xff0c;键盘时&#xff0c;一个鼠标事件或者键盘事件就产生了。当窗口第一次显示时&#xff0c;一个绘制事件会产生告诉新可见的窗口绘…

【Dify 案例】【MCP实战】【三】【超级美食家】

接上次的超级助理,我们这一期给出一个超级美食家 首先:我的MCP要申请一个key ` 我们来看看这个MCP服务怎么使用呢。`https://modelscope.cn/mcp/servers/@worryzyy/howtocook-mcp插件里面需要配置 {"mcpServers":{"amap-amap-sse":{"url":&qu…

4.文件管理(文本、日志、Excel表)

目录 1.文本 2.日志 3.Excel表 1.文本 using System.Text;namespace (自己创建的一个类) {/// <summary>/// 配置文件*.ini读写器。/// </summary>public class IniFile{[System.Runtime.InteropServices.DllImport("kernel32")]private static ex…

Java 包装类详解

什么是包装类 Java包装类&#xff08;Wrapper Classes&#xff09;是将8种基本数据类型封装成对象的类&#xff0c;位于java.lang包中。每个基本数据类型都有对应的包装类&#xff1a; byte → Byteshort → Shortint → Integerlong → Longfloat → Floatdouble → Doublec…

阿里云ACP认证-数据仓库

数据仓库 Kappa架构&#xff1a;将实时和离线代码统一&#xff08;优化lambda架构&#xff09;&#xff0c;但是不好修正数据&#xff0c;开发周期长&#xff0c;成本浪费&#xff0c;对于历史数据的高吞吐量力不从心 原一代数据仓库&#xff1a; 离线&#xff1a;hivemaxcom…

WebRTC(五):TURN协议

TURN&#xff08;Traversal Using Relays around NAT&#xff09;协议是一个网络协议&#xff0c;旨在解决 NAT&#xff08;网络地址转换&#xff09;和防火墙 环境下的 UDP/TCP通信问题。它通常与 STUN 和 ICE 协议一起使用&#xff0c;广泛应用于 WebRTC、SIP 和视频会议等实…

Python 的内置函数 hasattr

Python 内建函数列表 > Python 的内置函数 hasattr Python 的内置函数 hasattr() 用于检查一个对象是否具有指定的属性或方法。该函数的语法为&#xff1a; hasattr(object, name)参数说明&#xff1a; object&#xff1a;要检查的对象&#xff0c;可以是任何 Python 对象…

docker使用技巧之把扩展卷命名变成有意义

背景 之前使用别人的镜像之后&#xff0c;启动docker后发出现了一堆看不懂名称的扩展卷 eg&#xff1a;集群查看 扩展卷查看 这个时候如果有很多集群需要清理扩展卷就很麻烦&#xff0c;不知道是哪个集群的 操作步骤 可以实现的分析&#xff1a;这个扩展卷的信息应该是和…

《博物通书》《博物新编》与满清历史篡改

《博物新编》作为近代西方科技输入中国的首部著作&#xff0c;其问世犹如一颗投入平静湖面的巨石&#xff0c;在 19 世纪中期的中国激起层层涟漪&#xff0c;对中国近代科学发展产生了多维度、深层次的影响。它不仅是知识传播的载体&#xff0c;更是推动中国科学从传统走向近代…

【入门】【例18.1】 睡眠

| 时间限制&#xff1a;C/C 1000MS&#xff0c;其他语言 2000MS 内存限制&#xff1a;C/C 64MB&#xff0c;其他语言 128MB 难度&#xff1a;中等 分数&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分数2难度) 出题人&#xff1a;root | 描述 一个人只有每天睡眠时间到达 8…