当前位置: 首页 > 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
http://www.lryc.cn/news/225561.html

相关文章:

  • 100+ Windows运行命令大全,装B高手必备
  • iOS 设置图标和upload包时显示错误
  • 软件工程的舞台上,《人月神话》的美学纷飞
  • C现代方法(第19章)笔记——程序设计
  • Elasticsearch 作为 GenAI 缓存层
  • FPGA与STM32_FSMC总线通信实验
  • maven配置自定义下载路径,以及阿里云下载镜像
  • 01.单一职责原则
  • RT-Thread上部署TinyMaix推理框架,使MCU赋予AI能力
  • 设计模式 -- 策略模式(Strategy Pattern)
  • Spring Boot 集成 ElasticSearch
  • 百度智能云正式上线Python SDK版本并全面开源!
  • LeetCode(3)删除有序数组中的重复项【数组/字符串】【简单】
  • 前端视角中的微信登录
  • Python 中使用 Selenium 隐式等待
  • GEE:基于 Landsat 计算的 kNDVI 应用 APP
  • Spring 缓存注解
  • 微信小程序前端开发
  • C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割
  • 无需开发,精臣云可轻松连接用户运营、广告推广等行业应用
  • 第三阶段第一章——PySpark实战
  • Python数据容器(字符串)
  • Python---练习:把8名讲师随机分配到3个教室
  • python+requests接口自动化测试
  • 【T3】畅捷通T3采购管理模块反结账,提示:本年数据已经结转,不能取消结账。
  • 线性代数(五) | 矩阵对角化 特征值 特征向量
  • 读书笔记:彼得·德鲁克《认识管理》第12章 服务机构的绩效管理
  • 基于FPGA的模板匹配红外目标跟踪算法设计
  • ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR
  • 用于强化学习的置换不变神经网络