c语言指针一

news2024/9/20 8:14:19
#include "stdio.h"
#include <stdlib.h>

int main()
{

	//char buf[] = "ab";
	char a[] = { 'a','b',0,'c' };//内存存储的为数字0 等价于 \0
	char b[] = { 'a','b','0','c' };
	char c[] = { 'a','b','\0','c' };
	//printf("%s\n",buf);
	//puts(buf);//数组元素的首地址
	//fputs(buf,stdout);//数组元素的首地址
	printf("%s\n", a);//ab
	printf("%s\n", b);//ab0c烫烫烫烫ab
	printf("%s\n", c);//ab

	int l = strlen(a);

	//printf("%s\n", a[strlen(a)]);

	//system("pause");
    //32位系统地址编号0x0000 0000 ~0xffff ffff 故需要四个字节存储,64则需要8个字节才能存完
	int num = 0x01020304;//16的8次方 == 2的32次方 所以用八位十六进制的即可表示32的内存
	char* p1 = &num;
	short* p2 = &num;
	int* p3 = &num;

	//指针类型 32位编译器 4个字节 64位编译器 8个字节,故指针内容相同
	printf("char*:%x\n", p1);
	printf("short*:%x\n", p2);
	printf("int*:%x\n\n", p3);

	//char 1个字节 故只能读取内存的前8位 
	//short 占两个字节 故能读取内存的前16位
	//int 占4个字节 故能读取内存的前32位
	//32编译器能支持 32地址总线最大值位4G,64位编译器最大能支持64位地址总线
	printf("char*:%x\n",*p1);
	printf("short*:%x\n",*p2);
	printf("int*:%x\n",*p3);

	//int num = 0x01020304;
	//char* p1 = (char*)&num;
	//short* p2 = (short*)&num;
	//int* p3 = &num;

	//printf("num:%d\n",num);
	//printf("chart*:%x\n", *p1);
	//printf("short*:%x\n", *p2);
	//printf("int*:%x\n", *p3);
	return 0;
}
ab
ab0c烫烫烫烫ab
ab
char*:12ffbd4
short*:12ffbd4
int*:12ffbd4

//这里通过解指针取值内容,对应的内存宽度是由指针变量本身的类型决定的
//比如char* p    1字节  变量与靠近的*整体移除,剩下的类型就是指针变量的类型
//指针的步长(指针+1跨过的字节长度) == sizeof(变量与靠近的*整体移除,剩下的类型就是指针变量的类型) == sizeof(char)
//思考数组的指针+1,数组名 +1
//思考 int **p 的长度
//解:sizeof(p最近的*一起移除 == int *) = sizeof(int *) == 指针类型32位机器为4个字节

char*:4   // 思考:这里为什么取值位04而不是01(因为04是低位,内存存储是从低位到高位存储L--->H)
short*:304 //同理是倒叙
int*:1020304

 

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

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

相关文章

[Linux]基础IO详解(系统文件I/O接口、文件描述符、理解重定向)

hello&#xff0c;大家好&#xff0c;这里是bang___bang_ &#xff0c;今天和大家谈谈Linux中的基础IO&#xff0c;包含内容有对应的系统文件I/O接口&#xff0c;文件描述符&#xff0c;理解重定向。 目录 1️⃣初识文件 2️⃣ 系统文件I/O接口 &#x1f359;open &#x1…

51单片机学习--DS1302可调时钟

之前学习过用定时器做的时钟&#xff0c;但是那样不仅误差大还费CPU&#xff0c;接下来利用DS1302时钟模块做一个可调实时时钟 这一次直接编写DS1302模块&#xff0c;首先要在DS1392.c 中根据下面的模块原理图进行位声明&#xff1a; sbit DS1302_SCLK P3^6; sbit DS1302_IO …

05 Ubuntu下安装.deb安装包方式安装vscode,snap安装Jetbrains产品等常用软件

使用deb包安装类型 deb包指的其实就是debian系统&#xff0c;ubuntu系统是基于debian系统的发行版。 一般我们会到需要的软件官网下载deb安装包&#xff0c;然后你既可以采用使用“软件安装”打开的方法来进行安装&#xff0c;也可以使用命令行进行安装。我推荐后者&#xff…

电脑更新win10黑屏解决方法

电脑更新win10黑屏解决方法 电脑黑屏出现原因解决步骤 彻底解决 电脑黑屏 出现原因 系统未更新成功就关机&#xff0c;导致系统出故障无法关机 解决步骤 首先长安电源键10s关机 按电源键开机&#xff0c;出现logo时按F8进入安全模式。 进入自动修复环境后&#xff0c;单击…

快速排序——“数据结构与算法”

各位CSDN的uu们好呀&#xff0c;今天又是小雅兰的数据结构与算法专栏啦&#xff0c;下面&#xff0c;就让我们进入快速排序的世界吧&#xff01;&#xff01;&#xff01; 快速排序 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&…

工序委外PR审批后,不允许按工单自动更新PR交期

工序委外PR审批后&#xff0c;不允许按工单自动更新PR交期 工序委外PR审批后&#xff0c;更改工单结束日期&#xff0c;PR的交期还是会按工单重新更新交货日期&#xff1f; 检查配置&#xff1a; 1.生产模块集成的配置没有找到这么细的配置点 2.PR审批标识调整也没有效果 没找…

webrtc的回声消除延迟时间估算

叫回声消除的延迟时间估算不太合理&#xff0c;这里核心就是估算调用webrtc的条件边界&#xff0c;都知道webrtc回声消除的生效的前提就是一定要拿到远端声音的信息&#xff0c;然后拿近端声音和远端声音对齐&#xff0c;从近端声音中&#xff0c;结合远端声音模拟出远端声音在…

MySQL安装 找不到 MSVCP100.dll

安装mysql5.6.51时&#xff0c;出现由于找不到 MSVCP100.dll&#xff0c;无法继续执行代码。重新安装程序可能会解决此问题。 这应该是缺少VS运行库文件导致的&#xff0c;运行库就是支持大部分程序运行的基础&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编…

Toolformer :让AI学会使用工具

paper: 《Toolformer: Language Models Can Teach Themselves to Use Tools 》 核心思想&#xff0c; 1. Sampling API Calls &#xff1a;设计设计prompt,让模型生成含API调用的文本&#xff08;如图3&#xff09;&#xff0c;只保留K个概率最高的API调用 2. Executing API …

nvm安装和切换node版本

1、nvm list查看已安装的node版本 2、查看当前使用的npm和node版本 3、安装某版本的node 4、 切换node版本

一行命令删除tag为<none>的镜像

sudo docker images | grep none | awk {print $3;} | xargs sudo docker rmi

理解APP开发的法规和合规性问题

随着移动应用程序的快速普及&#xff0c;越来越多的用户选择使用这些应用程序。但它们也会带来一些问题&#xff0c;其中许多是由于应用程序开发过程中存在的法规和合规性问题。用户需要了解这些问题&#xff0c;以及如何解决它们。 APP开发是一个不断变化的领域&#xff0c;其…

我的创作纪念日——256天

机缘 最开始我写博客没有什么特别的原因&#xff0c;主要是因为以下几点&#xff1a; 练习自己的语言组织能力 记录自己学习生活中学到的知识 为和我同一个学习阶段的朋友提供帮助 事实上最开始我根本不指望我的博客有多少人看&#xff0c;主要是想找一个好的保存 Markdown 笔…

穷举深搜暴搜回溯剪枝(2)

一)电话号码的字母组合 17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 1)画出决策树:只是需要对最终的决策树做一个深度优先遍历 把图画出来&#xff0c;知道每一层在干什么&#xff0c;代码就能写出来了 2)定义全局变量: 1)定义一个哈希表来处理数字和字符串…

【freespace】YOLOP: You Only Look Once for Panoptic Driving Perception论文解读

目录 Abstract 摘要 1、简介 2、 相关工作 2.1. 交通目标检测 2.2. 可驾驶区域分割 2.3. 车道检测 2.4. 多任务的方法 3. 方法 3.1. 编码器 3.1.1 骨干 3.1.2 脖子 3.2. 解码器 3.2.1 探测头 3.2.2 可驾驶区域分段头&车道线分段头 3.3. 损失函数 3.4. 训练模…

Windows同时安装两个版本的JDK并随时切换,以JDK6和JDK8为例,并解决相关存在的问题(亲测有效)

Windows同时安装两个版本的JDK并随时切换&#xff0c;以JDK6和JDK8为例&#xff0c;并解决相关存在的问题&#xff08;亲测有效&#xff09; 1.下载不同版本JDK 这里给出JDK6和JDK的百度网盘地址&#xff0c;具体安装过程&#xff0c;傻瓜式安装即可。 链接&#xff1a;http…

华为OD机试真题 JavaScript 实现【机器人活动区域】【2023Q1 200分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试&am…

EXCEL,多条件查询数字/文本内容的4种方法

目录 1 问题&#xff1a;如何根据多条件查询到想要的内容 2 方法总结 2.1 方法1&#xff1a; sumif() 和sumifs() 适合查找符合条件的多个数值之和 2.2 方法2&#xff1a;使用lookup(1,0/((区域1条件1)*(区域2条件2)*....),结果查询区域) 2.3 方法3&#xff1a;使用 ind…

rknn模型在rv1126开发板上跑

在前面&#xff0c;已经将 onnx模型转为 rknn模型。 yolov5 onnx模型 转为 rknn模型_爱钓鱼的歪猴的博客-CSDN博客 这里探讨的是&#xff1a;rknn模型在rv1126开发板上运行 目录 1、rknn模型在PC端进行推理测试&#xff0c;评估模型精度 2、模型预编译 3、rknn模型部署到r…