C语言指针,的声明、取地址、*解引用、设置值、偏移、自增 的问题举例

news2024/12/28 20:37:40

C语言指针,的声明、&取地址、※解引用、设置值、偏移、自增 的问题举例代码:int※a,d[]={1,2,4,8};char*f,e[]=“Hellow…”;a=&b; P1=※a; ※a=4; P1=※(++a);f=&e[7];

(备注:※代表*,转义问题,没显示)
在这里插入图片描述
可以拷贝代码到Keil中调试运行看变量(直接拖动变量到监视器1中观察即可,右键监视器变量,可选择是否显示HEX的0x十六进制和十进制)

#include <stdio.h>
#include <REG52.H>
void main (void) {
//int p1=0;
int* a,b,c;
int d[]={1,2,4,8,16};//注意这里是Shift+[]={}花括号包数组
char e[]="Hellow World!";//1字节的类型,字符串就可以直接双引号
char*f;
while(1)
{
 P1=0;
 P1=0xff;
 P1=0x0f;
 a=&b;
	b=20;
	P1=*a;
a=&c;
	c=10;
	P1=*a;
a=&d;
P1=a;//没有解引用,是指针地址0x0F
P1=*a;//1,解引用了,所以是读指针指向的值1
P1=a[2];//4,0x0F+(2*int2字节)=0x13,P1=*a[2];P1=*(a[2]);//都编译错误	
	P1=a[0];//1,I:0x0F
	P1=a[1];//2,I:0x11
	P1=a[2];//4,I:0x13<
	P1=a[3];//8,I:0x15
	P1=a[4];//16,I:0x17
	
a++;//0x11
P1=*a;//2
P1=*a++;//2
P1=*a;//4
P1=++*a;//5,等效为*a=++*a;P1=*a;//4+1=5,解引用值自增后,给P1赋值
P1=*a;//5
*a=4;//给当前指针赋值4
P1=*(a++);//4,等效为P1=*a;a++;I:0x13+2=0x15后8
P1=*(++a);//16,等效为++a;P1=*a;
P1=*a;//16
P1=*(++a);//2,已经溢出不是固定值了,a指向了0x17+2=0x19
//总结:*解引用优先于自增,加括号()就优先自增,看++指针++前后了

f=&e;//72'H'
P1=*f;//72'H'
P1=f[0];//72'H'
P1=f[1];//101'e'
P1=f[2];//108'l'
P1=f[3];//108'l'
P1=f[4];//111'o'
P1=f[5];//119'w'
P1=f[5];//32' '

P1=*(++f);//101'e'
P1=*(++f);//108'l'
P1=*(++f);//108'l'
P1=*(++f);//111'o'
P1=*(++f);//119'w'

//给字符串截取后半段,偏移[7]"World!"位置
f=&e[7];//87'W'
P1=*f;//87'W'
P1=f[0];//87'W' //[0]下标不再是e[]字符串的首地址了,已经偏移了
P1=f[1];//111'o'
P1=f[2];//114'r'
P1=f[3];//108'l'
P1=f[4];//100'd'
P1=f[5];//33'!'
P1=f[6];//0溢出,不报错
P1=f[7];//0溢出

//指针自增
P1=*(++f);//111'o'
P1=*(++f);//114'r'
P1=*(++f);//108'l'
P1=*(++f);//100'd'
P1=*(++f);//33'!'
P1=*(++f);//0溢出,不报错

f=&e[0];
P1=*f++;//72'H'
P1=*f++;//101'e'
P1=*f++;//108'l'
P1=*f++;//108'l'
P1=*f++;//111'o'

f=&e[0];
P1=*(f++);//72'H'
P1=*(f++);//101'e'
P1=*(f++);//108'l'
P1=*(f++);//108'l'
P1=*(f++);//111'o'
}
2024.7.8 JianPF
}

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
(问AI,给了一个灵动交流式的回答,以前的愿望好像实现了一半了,另一半靠你了)

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

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

相关文章

Spring Cloud: Nacos配置中心与注册中心的使用

一、配置中心(配置管理) 配置中心是一种集中化管理配置的服务。它的主要作用包括集中管理配置信息&#xff0c;将不同服务的配置信息集中存储和管理&#xff1b;支持动态更新配置&#xff0c;通过操作界面或 API 无需重启服务即可应用最新配置信息&#xff1b;实现配置信息共享…

通过AIS实现船舶追踪与照射

前些天突然接到个紧急的项目&#xff1a;某处需要实现对夜航船只进行追踪并用激光灯照射以保障夜航安全。这个项目紧急到什么程度呢&#xff1f;&#xff01;现场激光灯都安装好了&#xff0c;还有三个星期就要验收了&#xff0c;但上家没搞定就甩给我们了:( 从技术上看&#…

【Python】已解决:xml.parsers.expat.ExpatError: no element found: Line 1, column 0

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;xml.parsers.expat.ExpatError: no element found: Line 1, column 0 一、分析问题背景 在使用Python的xml.parsers.expat模块解析XML文件时&#xff0c;有时会…

咬文嚼字:词元是当今生成式人工智能失败的一个重要原因

生成式人工智能模型处理文本的方式与人类不同。了解它们基于"标记"的内部环境可能有助于解释它们的一些奇怪行为和顽固的局限性。从 Gemma 这样的小型设备上模型到 OpenAI 业界领先的 GPT-4o 模型&#xff0c;大多数模型都建立在一种称为转换器的架构上。由于转换器在…

Java中读写文件内容乱码/BufferedReader读文件内容乱码/OutputStreamWriter设置编码集

1、问题概述&#xff1f; 在项目中我们经常会将例如日志信息放入到txt(任意后缀)文档中&#xff0c;然后在项目中通过弹框等形式查看直接的查看这些文档中的信息&#xff0c;然后有时候会出现乱码的情况。 这个时候我们就需要设置写入和写出时候的编码集情况。 2、解决方案 …

【PB案例学习笔记】-29制作一个调用帮助文档的小功能

写在前面 这是PB案例学习笔记系列文章的第29篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

Windows使用nxlog发送系统日志到Linux的rsyslog服务器

Windows使用nxlog发送系统日志到Linux的rsyslog服务器 前言一、IP地址规划及示意图二、在windows上安装及配置nxlog1.下载nxlog2.安装nxlog3.配置nxlog4.创建对应日志路径的文件夹 三、windows上启动nxlog服务四、在CentOS 7上配置日志存到指定位置文件1.编辑/etc/rsyslog.conf…

Python | Leetcode Python题解之第222题完全二叉树的节点个数

题目&#xff1a; 题解&#xff1a; # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def countNodes(self,…

[C++][ProtoBuf][初识ProtoBuf]详细讲解

目录 1.序列化概念2.ProtoBuf是什么&#xff1f;3.ProtoBuf使用特点4.补充1.GOOGLE_PROTOBUF_VERIFY_VERSION 宏2.ShutdownProtobufLibrary()3.--decode 5.序列化能力对比验证6.总结 1.序列化概念 序列化&#xff1a;把对象转换为字节序列的过程&#xff0c;称为对象的序列化反…

Java中获取Class对象的三种方式

Java中获取Class对象的三种方式 1、对象调用getClass()方法2、类名.class的方式3、通过Class.forName()静态方法4、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;Class对象是一个非常重要的概念&#xff0c;它代…

【carla】ubuntu安装carla环境

我们可以通过查看 CARLA 的 GitHub release 页面来找到最新版本的下载链接。 下载 CARLA 压缩包 访问 CARLA Releases 页面&#xff1a; CARLA Releases on GitHub 查找最新版本&#xff1a; 找到最新的版本&#xff0c;点击下载&#xff0c;第一个压缩包 3. 解压 CARLA 包&…

Python 爬虫 tiktok关键词搜索用户数据信息 api接口

Tiktok APP API接口 Python 爬虫采集Tiktok数据 采集结果页面如下图&#xff1a; https://www.tiktok.com/search?qwwe&t1706679918408 请求API http://api.xxx.com/tt/search/user?keywordwwe&count10&offset0&tokentest 请求参数 返回示例 联系我们&…

Python | Leetcode Python题解之第221题最大正方形

题目&#xff1a; 题解&#xff1a; class Solution:def maximalSquare(self, matrix: List[List[str]]) -> int:if len(matrix) 0 or len(matrix[0]) 0:return 0maxSide 0rows, columns len(matrix), len(matrix[0])dp [[0] * columns for _ in range(rows)]for i in…

仿qq音乐播放微信小程序模板源码

手机qq音乐应用小程序&#xff0c;在线音乐播放器微信小程序网页模板。包含&#xff1a;音乐歌曲主页、推荐、排行榜、搜索、音乐播放器、歌单详情等。 仿qq音乐播放微信小程序模板源码

量产工具一一页面系统(五)

目录 前言 一、产品页面数据结构抽象 1. page_manager.h 二、产品页面管理器 1.page_manager.c 三、产品页面运行 1.main_page.c 四、单元测试 1.page_test.c 2.上机测试 前言 前面我们实现了显示系统框架&#xff0c;输入系统框架&#xff0c;文字系统框架和UI系统…

WAIC热点聚焦|新质生产力与低空经济

WAIC热点聚焦|新质生产力与低空经济 概览 # WAIC热点聚焦 | 新质生产力与低空经济## 1. 新质生产力定义与特点 - 新质生产力是在新的经济社会发展阶段中形成的&#xff0c;具有变革性和高增长潜力的生产能力。## 2. 低空经济概念与构成 ### 2.1 低空经济定义 - 低空经济是依托…

斯坦福CS224n深度学习培训营课程

自然语言处理领域的经典课程涵盖了从基础知识到最新研究的全面内容。本培训营将精选课程内容&#xff0c;结合实际案例和项目实践&#xff0c;带领学员深入探索自然语言处理的前沿&#xff0c;学习最先进的深度学习技术。 课程大小&#xff1a;2.6G 课程下载&#xff1a;http…

仿哔哩哔哩视频app小程序模板源码

仿哔哩哔哩视频app小程序模板源码 粉色的哔哩哔哩手机视频网页&#xff0c;多媒体视频类微信小程序ui前端模板下载。包含&#xff1a;视频主页和播放详情页。 仿哔哩哔哩视频app小程序模板源码

Linux运维:mysql主从复制原理及实验

当一台数据库服务器出现负载的情况下&#xff0c;需要扩展服务器服务器性能扩展方式有向上扩展&#xff0c;垂直扩展。向外扩展&#xff0c;横向扩展。通俗的讲垂直扩展是将一台服务器扩展为性能更强的服务器。横向扩展是增加几台服务器。 主从复制好比存了1000块钱在主上&…