当前位置: 首页 > news >正文

test_sizeof

test_sizeof


//结论:
// sizeof(arrU8)得到的大小是u8类型数组的 **定义大小**,在 初始化的时候用
// strlen(arrU8)得到的大小是u8类型数组的 **实际大小**,在 复制的时候用
//sizeof((char*)arrU8),把一个u8 * 转成 char *,在32位机器上结果是4,64位机器上是8
//sizeof((char*)arrU8)是输出一个指针的大小
//要打印u8类型的数组,直接arrU8就可以了,不用加(char*);

#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef unsigned char u8;int main(void)
{u8 arrU8[12] = {0};printf("printf arrU8[12] by arrU8 = %s\n", arrU8);//printf arrU8[12] by arrU8 = printf("printf arrU8[12] by (char*)arrU8=%s\n", (char*)arrU8);//printf arrU8[12] by (char*)arrU8=printf("sizeof(arrU8)=%d\n", sizeof(arrU8));//sizeof(arrU8)=12printf("sizeof((char*)arrU8)=%d\n", sizeof((char*)arrU8));//sizeof((char*)arrU8)=8printf("strlen(arrU8)=%d\n", strlen(arrU8));//strlen(arrU8)=0printf("strlen((char*)arrU8)=%d\n", strlen((char*)arrU8));//strlen((char*)arrU8)=0memcpy(arrU8, "123456789", 9);printf("---------------------------------------------\n");printf("printf arrU8[12] by arrU8 = %s\n", arrU8);//printf arrU8[12] by arrU8 = 123456789printf("printf arrU8[12] by (char*)arrU8=%s\n", (char*)arrU8);//printf arrU8[12] by (char*)arrU8=123456789printf("sizeof(arrU8)=%d\n", sizeof(arrU8));//sizeof(arrU8)=12printf("sizeof((char*)arrU8)=%d\n", sizeof((char*)arrU8));//sizeof((char*)arrU8)=8printf("strlen(arrU8)=%d\n", strlen(arrU8));//strlen(arrU8)=9printf("strlen((char*)arrU8)=%d\n", strlen((char*)arrU8));//strlen((char*)arrU8)=9//结论://sizeof(arrU8)得到的大小是u8类型数组的定义大小//strlen(arrU8)得到的大小是u8类型数组的实际大小//sizeof((char*)arrU8),把一个u8 * 转成 char *,在32位机器上结果是4,64位机器上是8//sizeof((char*)arrU8)是输出一个指针的大小//要打印u8类型的数组,直接arrU8就可以了,不用加(char*);printf("---------------------------------------------\n");char arrCh[12] = {0};printf("printf arrCh[12] by arrCh = %s\n", arrCh);//printf arrCh[12] by arrCh = printf("printf arrCh[12] by (char*)arrCh=%s\n", (char*)arrCh);//printf arrCh[12] by (char*)arrCh=printf("sizeof(arrCh)=%d\n", sizeof(arrCh));//sizeof(arrCh)=12printf("sizeof((char*)arrCh)=%d\n", sizeof((char*)arrCh));//sizeof((char*)arrCh)=8printf("strlen(arrCh)=%d\n", strlen(arrCh));//strlen(arrCh)=0printf("strlen((char*)arrCh)=%d\n", strlen((char*)arrCh));//strlen((char*)arrCh)=0memcpy(arrCh, "987", 3);printf("---------------------------------------------\n");printf("printf arrCh[12] by arrCh = %s\n", arrCh);//printf arrCh[12] by arrCh = 123456789printf("printf arrCh[12] by (char*)arrCh=%s\n", (char*)arrCh);//printf arrCh[12] by (char*)arrCh=123456789printf("sizeof(arrCh)=%d\n", sizeof(arrCh));//sizeof(arrCh)=12printf("sizeof((char*)arrCh)=%d\n", sizeof((char*)arrCh));//sizeof((char*)arrCh)=8printf("strlen(arrCh)=%d\n", strlen(arrCh));//strlen(arrCh)=9printf("strlen((char*)arrCh)=%d\n", strlen((char*)arrCh));//strlen((char*)arrCh)=9printf("---------------------------------------------\n");printf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));memset(arrU8, 0, sizeof(arrU8));//初始化的时候用sizeofmemcpy(arrU8, arrCh, strlen(arrCh));//复制的时候strlenprintf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));printf("---------------------------------------------\n");printf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));memset(arrU8, 0, sizeof(arrU8));memcpy(arrU8, "54321", 5);printf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));printf("---------------------------------------------\n");printf("arrCh=%s strlen(arrCh)=%d\n", arrCh, strlen(arrCh));memset(arrCh, 0, sizeof(arrCh));memcpy(arrCh, arrU8, strlen(arrU8));printf("arrCh=%s strlen(arrCh)=%d\n", arrCh, strlen(arrCh));exit(0);
}
printf arrU8[12] by arrU8 = 
printf arrU8[12] by (char*)arrU8=
sizeof(arrU8)=12
sizeof((char*)arrU8)=8
strlen(arrU8)=0
strlen((char*)arrU8)=0
---------------------------------------------
printf arrU8[12] by arrU8 = 123456789
printf arrU8[12] by (char*)arrU8=123456789
sizeof(arrU8)=12
sizeof((char*)arrU8)=8
strlen(arrU8)=9
strlen((char*)arrU8)=9
---------------------------------------------
printf arrCh[12] by arrCh = 
printf arrCh[12] by (char*)arrCh=
sizeof(arrCh)=12
sizeof((char*)arrCh)=8
strlen(arrCh)=0
strlen((char*)arrCh)=0
---------------------------------------------
printf arrCh[12] by arrCh = 987
printf arrCh[12] by (char*)arrCh=987
sizeof(arrCh)=12
sizeof((char*)arrCh)=8
strlen(arrCh)=3
strlen((char*)arrCh)=3
---------------------------------------------
arrU8=123456789 strlen(arrU8)=9
arrU8=987 strlen(arrU8)=3
---------------------------------------------
arrU8=987 strlen(arrU8)=3
arrU8=54321 strlen(arrU8)=5
---------------------------------------------
arrCh=987 strlen(arrCh)=3
arrCh=54321 strlen(arrCh)=5

相关文章:

test_sizeof

test_sizeof //结论&#xff1a; // sizeof(arrU8)得到的大小是u8类型数组的 **定义大小**&#xff0c;在 初始化的时候用 // strlen(arrU8)得到的大小是u8类型数组的 **实际大小**&#xff0c;在 复制的时候用 //sizeof((char*)arrU8)&#xff0c;把一个u8 * 转成 char *&…...

100+ Windows运行命令大全,装B高手必备

操作电脑关闭、重启、注销、休眠的命令细则: 用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]] 没有参数 显示帮助。这与键入 /? 是一样的。…...

iOS 设置图标和upload包时显示错误

右键-show in finder-AppIcon.appiconset-然后替换图片 然后遇到个问题 就是图片不能有alpha [Xcode]应用图标&#xff1a;ERROR ITMS-90717: “Invalid App Store Icon. The App Store Icon in the asset catalog in x… 具体操作&#xff1a;只需确保【AppIcon】图片集中不…...

软件工程的舞台上,《人月神话》的美学纷飞

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天给大家分享一本书&#xff1a;《人月神话》——软件工程的经典之作。 《人月神话》是一本具有深远影响力的软件工程著作&#xff0c;无论是软件开发者、管理者还是学习软件工程的人士&#xff0c;都能从中获得宝贵的启…...

C现代方法(第19章)笔记——程序设计

文章目录 第19章 程序设计19.1 模块19.1.1 内聚性与耦合性19.1.2 模块的类型 19.2 信息隐藏19.2.1 栈模块 19.3 抽象数据类型19.3.1 封装19.3.2 不完整类型 19.4 栈抽象数据类型19.4.1 为栈抽象数据类型定义接口19.4.2 用定长数组实现栈抽象数据类型19.4.3 改变栈抽象数据类型中…...

Elasticsearch 作为 GenAI 缓存层

作者&#xff1a;JEFF VESTAL&#xff0c;BAHA AZARMI 探索如何将 Elasticsearch 集成为缓存层&#xff0c;通过降低 token 成本和响应时间来优化生成式 AI 性能&#xff0c;这已通过实际测试和实际实施进行了证明。 随着生成式人工智能 (GenAI) 不断革新从客户服务到数据分析…...

FPGA与STM32_FSMC总线通信实验

FPGA与STM32_FSMC总线通信实验 内部存储器IP核的参数设置创建IP核FPGA代码STM32标准库的程序 STM32F407 上自带 FSMC 控制器&#xff0c;通过 FSMC 总线的地址复用模式实现STM32 与 FPGA 之间的通信&#xff0c;FPGA 内部建立 RAM 块&#xff0c;FPGA 桥接 STM32 和 RAM 块&…...

maven配置自定义下载路径,以及阿里云下载镜像

1.配置文件 <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org…...

01.单一职责原则

单一职责原则 概述 简单来说就是一个类只描述一件事&#xff0c; 比如我们熟知的 userDao.java 只负责 用户域功能。如果userDao既操作user表又操作order表&#xff0c;这显然不合理。正确的做法是让orderDao.java去操作order表。 对类来说的&#xff0c;一个类应该只负责一项…...

RT-Thread上部署TinyMaix推理框架,使MCU赋予AI能力

概要 当谈到微控制器(MCU)和人工智能(AI)的结合,我们进入了一个激动人心的领域。传统上,AI应用程序需要大型计算机或云服务器的处理能力,但随着技术的发展,现在可以将AI嵌入到微控制器中。这为嵌入式系统、物联网设备、机器人和各种其他应用开启了新的可能性。 MCU A…...

设计模式 -- 策略模式(Strategy Pattern)

策略模式&#xff1a;一种行为型模式&#xff0c;这些设计模式特别关注对象之间的通信。在策略模式中&#xff0c;我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图&#xff1a;定义一系列的算…...

Spring Boot 集成 ElasticSearch

1 加入依赖 首先创建一个项目&#xff0c;在项目中加入 ES 相关依赖&#xff0c;具体依赖如下所示&#xff1a; <dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.1.0</version&g…...

百度智能云正式上线Python SDK版本并全面开源!

文章目录 1. SDK的优势2. 千帆SDK&#xff1a;快速落地LLM应用3. 如何快速上手千帆SDK3.1 SDK快速启动3.2 SDK进阶指引3.3 通过Langchain接入千帆SDK 4. 开源社区 百度智能云千帆大模型平台再次升级&#xff01;在原有API基础上&#xff0c;百度智能云正式上线Python SDK&#…...

LeetCode(3)删除有序数组中的重复项【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 26. 删除有序数组中的重复项 1.题目 给你一个 非严格递增排列 的数组 nums &#xff0c;请你** 原地** 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保…...

前端视角中的微信登录

目录 引入 流程介绍 具体实现 引入 本文主要讲解网站应用中微信登录的具体流程是怎么样的&#xff0c;以及作为前端开发人员在这整个流程中的主要任务是什么。 如果想要实现微信登录的功能&#xff0c;需要开发人员到微信开放平台注册相应的账号&#xff0c;进行注册应用&am…...

Python 中使用 Selenium 隐式等待

selenium 包用于使用 Python 脚本进行自动化和测试。 我们可以使用它来访问网页中的各个元素并使用它们。 该包中有许多方法可用于根据不同属性检索元素。 加载页面时&#xff0c;会动态检索一些元素。 与其他元素相比&#xff0c;这些元素的加载速度可能不同。 Python 中使用…...

GEE:基于 Landsat 计算的 kNDVI 应用 APP

作者:CSDN @ _养乐多_ 本文记录了在Google Earth Engine(GEE)平台中,使用 Landsat 遥感数据计算 kNDVI 的应用 APP 链接,并介绍该 APP 的使用方法和步骤。该APP可以为用户展示 NDVI 和 kNDVI 的遥感影像,进行对比分析。该 APP 在 Google Earth Engine(GEE)平台中实现。…...

Spring 缓存注解

Spring Cache 框架给我们提供了 Cacheable 注解用于缓存方法返回内容。但是 Cacheable 注解不能定义缓存有效期。这样的话在一些需要自定义缓存有效期的场景就不太实用。 按照 Spring Cache 框架给我们提供的 RedisCacheManager 实现&#xff0c;只能在全局设置缓存有效期。这…...

微信小程序前端开发

目录 前言&#xff1a; 1. 框架选择和项目搭建 2. 小程序页面开发 3. 数据通信和接口调用 4. 性能优化和调试技巧 5. 小程序发布和上线 前言&#xff1a; 当谈到微信小程序前端开发时&#xff0c;我们指的是使用微信小程序框架进行开发的一种方式。在本文中&#xff0c;我…...

C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Numerics; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_D…...

终极免费TFT Overlay:云顶之弈玩家的智能悬浮助手

终极免费TFT Overlay&#xff1a;云顶之弈玩家的智能悬浮助手 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 在《英雄联盟&#xff1a;云顶之弈》这款策略自走棋游戏中&#xff0c;你是否经常因…...

LCM与LLM对比分析:为什么句子表示空间是语言建模的未来

LCM与LLM对比分析&#xff1a;为什么句子表示空间是语言建模的未来 【免费下载链接】large_concept_model Large Concept Models: Language modeling in a sentence representation space 项目地址: https://gitcode.com/gh_mirrors/la/large_concept_model Large Conce…...

May协程库与Tokio对比:栈式协程与Future异步模型的差异

May协程库与Tokio对比&#xff1a;栈式协程与Future异步模型的差异 【免费下载链接】may rust stackful coroutine library 项目地址: https://gitcode.com/gh_mirrors/ma/may May是一个高性能的栈式协程库&#xff0c;可帮助开发者轻松构建和维护大规模并发程序&#x…...

易语言实现圆弧长度计算

在易语言中计算圆弧长度&#xff0c;尤其是基于凸度&#xff08;Bulge&#xff09;和端点坐标的实现&#xff0c;需要将几何公式转换为具体的代码逻辑。以下是针对不同已知条件的详细实现方法&#xff0c;特别是凸度与端点场景。 一、 核心几何公式与易语言实现基础 圆弧长度…...

深度策略:结合内部挖掘、校园照片与行业人脉,构建动态更新的AI人才储备体系

在人工智能技术日新月异的当下,企业间的人才争夺早已从“抢简历”升级为“抢潜力”。传统的招聘节奏往往滞后于技术迭代——等你看到简历时,真正的高手已被先行者锁定。因此,一套能动态感知、主动培育、持续连接的AI人才储备体系,正成为组织竞争力的核心护城河。 本文将围…...

5分钟掌握网易云音乐NCM解密:免费转换MP3的完整指南

5分钟掌握网易云音乐NCM解密&#xff1a;免费转换MP3的完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的网易云音乐只能在官方应用播放而烦恼吗&#xff1f;NCM格式限制让你无法在其他设备上欣赏心爱的歌曲&…...

别再为Linux读卡器发愁了!手把手教你用pcsc-lite搞定USB智能卡驱动(附常见错误排查)

Linux智能卡驱动终极指南&#xff1a;从安装到排错的完整解决方案 每次在Linux系统上插上USB智能卡读卡器&#xff0c;却发现系统毫无反应时&#xff0c;那种挫败感简直让人抓狂。作为一位经历过无数次驱动安装失败的"过来人"&#xff0c;我完全理解这种痛苦——明明…...

别再为SURF/SIFT发愁了!Ubuntu 20.04下OpenCV_contrib离线安装全攻略(含预编译模型包)

Ubuntu 20.04下OpenCV_contrib离线安装终极指南&#xff1a;预编译模型包与避坑手册 在计算机视觉开发中&#xff0c;SURF、SIFT等经典特征提取算法依然是许多项目的基石。然而&#xff0c;当你在Ubuntu 20.04上尝试安装OpenCV_contrib扩展库时&#xff0c;可能会遇到各种网络下…...

BilibiliDown:三步完成B站视频批量下载的完整方案

BilibiliDown&#xff1a;三步完成B站视频批量下载的完整方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bi…...

告别手动拉框!用Label Studio + YOLOv5实现图像标注自动化(保姆级教程)

智能标注革命&#xff1a;用Label Studio与YOLOv5打造零基础自动化标注系统 在计算机视觉项目的生命周期中&#xff0c;数据标注往往成为制约项目进度的最大瓶颈。传统人工标注不仅耗时费力&#xff0c;还容易因疲劳导致标注质量下降。想象一下&#xff0c;当你面对数万张待标注…...