一文让你学会做C语言变量指针题

“C语言的核心是指针,灵魂是算法“那么指针为什么被誉为C语言灵魂呢? 以下文章来源于编程指北 ,作者编程指北 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解。 不了解的对指针的理解就停留在“指针就是变量的地址”这句话,会比较害怕使用指针,特别是各种高级操作。 而了解内存模型的则可以把指针用得炉火纯青,随意操作,让人直呼 666。 这篇看完,相信你会对指针有一个新的认识,坐等打脸???? 一、内存本质 编程的本质其实就是操控数据,数据存放在内存中。 因此,如果能更好地理解内存的模型,以及 C 如何管理内存,就能对程序的工 阅读详情

🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。

前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~

人生苦短,我用python

一文让你学会做C语言变量指针题

题目

在这里插入图片描述
已知 static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p ,则表达式 *(p[0]+1)+**(q+2) 的值是( )。
A. 5      B.4      C. 6      D.7

解说

刚开始看到这个题目,是不是有点懵?感觉自己学的是假的指针,不要慌!
接下来看我的方法:
首先要催眠自己记住:*是从地址中取值,&是获取值的地址;*是从地址中取值,&是获取值的地址;*是从地址中取值,&是获取值的地址…
然后我们假设有个内存条(我的独门秘诀,对你分析题目一定有帮助!不要怕写的麻烦,做出来一定会让你骄傲一秒钟!):

内存地址内容
0x01005
0x01014
0x01023
0x01032
0x01041

然后又知道直接使用变量 a 的话,就会获取数组第一个值的地址,即 a = 0x0100 ;
接下来题目赋值了一个指针数组,继续给我们的内存条加内存:

内存地址内容
0x01005
0x01014
0x01023
0x01032
0x01041
0x02000x0103
0x02010x0102
0x02020x0101
0x02030x0100

新增的就是指针数组 p 的内存地址。
然后看到 **q=p ,一个 * 就让我们很慌了,两个 * 怎么办?
不要慌!遇到问题先发个朋友圈 !
首先我们要理解一下这个 p ,他是存指针变量的数组,所以他存的数值都是指针地址,而他存的是另一组指针地址。
然后我们来转换一下,我们应该熟记:
*address = value
address = &value
对吧?
所以此处的 **q=p 就可以转写为 *q=&p ,现在再用中文说一遍:
指针 q 是变量 p 的地址,所以此处应该是 q = 0x0200 对吧?
然后我们将所有内存地址与变量的对应关系代入总的算式:

*(p[0]+1)+**(q+2)
= *(a+3+1)+**(0x0200+2)
= *(0x100+4)+**(0x0202)
= *(0x0104)+**(0x0202)
= 1+*(0x0101)
= 1+4
= 5

所以选 A !

在这里插入图片描述

没毛病啊!

结束语

我觉得经过这解说,整个题目变得十分清晰了。
如果我的解说对你有帮助,不要忘了 关注、点赞、收藏 哦~

指针和指针变量 为了表示指针变量和他所指的变量之间的联系,在程序中用“*”表示"指向",如果定义变量 i 为指针变量,那么 *i 就表示指针变量 i 里面存放的地址所指向的存储单元里面的数据,很绕吧,可以在纸上画一画。 ... 阅读详情

相关推荐

从零开始:在Unity中使用Dynamic Bone实现角色骨骼自然抖动(以女性角色胸部为例)

本文详细介绍了在Unity中使用Dynamic Bone插件实现角色骨骼自然抖动的完整流程,特别以女性角色胸部为例。从插件导入、骨骼系统基础到Dynamic Bone组件配置和参数调优,提供了全面的技术指导。文章还包含性能优化技巧和常见问题解决方案,帮助开发者快速掌握这一物理效果实现方法。

weixin_28728495的博客 457

已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p,则表达式*(p[0]+1)+**(q+2)的值是

表达式 *(p[0]+1) **(q+2) 的值是 2。 首先,p 是一个指针数组,其中 p[0] 指向数组 a 的第四个元素,即 a[3],因为数组下标从0开始计数。 因此,p[0]+1 指向 a[3] 的下一个元素,即 a[4],但是这个元素超出了数组 a 的边界,因为数组 a 只有5个元素。因此,*(p[0]+1) 的值是未定义的。 另外,q 是一个指向指针的指针,因此 q+2 指向 p[1...

weixin_42576410的博客 661

支持向量机算法(带你了解原理 实践)

支持向量机作为一种强大的分类算法,在各个领域都取得了显著的成果。其基于统计学习理论的原理使得它能够在高维空间中找到最优分类超平面,并通过核函数处理非线性问题。

2303_79387663的博客 3738

c语言中置位作用,C语言中常见的置位操作(置0或置1)

写成宏,方便移植#define setbit(x,y)x|=(1<#define clrbit(x,y)x&=~(1<//将X的第Y位清0方法二:C语言位运算除了可以提高运算效率外,在嵌入式系统的编程中,它的另一个最典型的应用,而且十分广泛地正在被使用着的是位间的与(&)、或(|)、非(~)操作,这跟嵌入式系统的编程特点有很大关系。我们通常要对硬件寄存器进行位设置譬如,...

weixin_35667833的博客 1232

GEE——土地利用分类之监督分类

利用GEE做监督分类,以武汉市为例。 训练器我们选择随机森林;数据选择Landsat-8;训练样本使用的是GEE提供的一种,它把地表分为三类:水体、植被和城市用地。 选择训练样本 用要素集来标记训练样本。每个要素都有一个landcover 的属性,0表示城市用地,1表示植被,2表示水体。 对影像进行分类 其中一部分进行分类器的训练,还有一部分留下来做精度验证。 输出影像及混淆矩阵 print(LABEL_DATA); var wuhan = ee.FeatureCollection('users/

qq_41600680的博客 1万+

在昇腾910B服务上部署搭建适配PDF解析工具Mineru2.5开源项目

本文介绍了在昇腾910B服务器上部署开源PDF解析工具Mineru2.5的过程。首先从昇腾社区下载mindie镜像并运行容器,安装系统依赖。针对部署过程中遇到的多个报错问题(如torchvision与torch版本不匹配、昇腾软件栈与NumPy 2.0不兼容等),提供了具体解决方案和兼容版本。通过设置环境变量、安装指定版本的Python依赖包,成功部署Mineru项目并下载模型。最后运行测试,验证了在NPU设备上运行pipeline的可行性。整个过程详细记录了版本适配和错误处理方法,为类似部署场景提供了参考

一起加油吧 2165

C语言学习笔记

C语言基础学习笔记

m0_46626242的博客 1303

关于 SAP UI5 应用 url 中的特殊符号 # 的作用介绍

符号在 SAP UI5 的 URL 中不仅仅是一个分隔符,更是动态路由、状态管理和深链接的关键所在。通过合理使用,开发者可以实现高效、流畅的用户体验,同时保持系统的可维护性和扩展性。通过 SAP UI5 提供的灵活路由机制,企业应用可以轻松实现复杂导航需求,同时为用户提供直观的交互体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 415

c语言程序设计教程试题答案,C语言程序设计试题及答案

C语言D. C语言不允许这样的语句。14.具有相同基类型的指针变量P和数组变量Y,下列写法中不合法的是 ( ) 。A.P = Y B.*P = Y[i]C.P + &Y[i] D.P = &Y15.已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},*...

weixin_39989941的博客 409

Open3D (C++) KD tree的使用【2025最新版】

Open3D (C++) KD tree的使用,博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 1566

【Oracle】Oracle rman工具使用(真的细)

Oracle RMAN(Recovery Manager)是Oracle数据库备份和恢复的官方工具,它提供的备份和恢复功能非常强大和可靠。RMAN可以备份整个数据库或特定表空间、数据文件、控制文件和归档日志,同时还可以进行增量备份和增量恢复。RMAN还提供了诸如备份验证、备份优化、备份复制、备份集管理、恢复操作、自动备份、自动恢复等高级功能。它使用的备份和恢复格式是Oracle通用的备份集(Backup Set),这使得备份和恢复非常灵活和高效。

tttzzzqqq2018的博客 8505

c语言程序设计答案苏小红,C语言程序设计苏小红版答案[推荐阅读]

printf("%6d",i*j);}printf("\n");} }1、 已知int i, x[3][4];则不能将x[1][1]的值赋给变量i的语句是______ (分数:2 分)A. i=*(*(x+1)) B. i=x[1][1] C. i=*(*(x+1)) D. i=*(x[1]+1) 标准答案是:A。2、 当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是______. (...

weixin_28878117的博客 2984

orange软件:入门使用

orange做数据分析契机实验手册目录orange软件部分界面展示小试牛刀:数据导入和展示小试牛刀:散点图绘制总结 契机 今天在上大数据时代实验课,作为一名软件工程专业的大三学生,在上这节公选课之前就决定这节课做完这个学期所有的实验报告,可以说“有亿点”不屑;尤其当老师说Python很麻烦的时候,我更是震惊了,因为我接触过这么多编程语言,Python真的很友好了,很傻瓜,但是当老师打开实验手册的时候,我真香了!!!下面先来看看手册的目录: 实验手册目录 为什么会真香呢,因为目录里这些有好多机器学习算法!

weixin_45880844的博客 1万+

C语言重点——指针篇(一文让你完全搞懂指针)| 从内存理解指针 | 指针完全解析

有干货、更有故事,微信搜索【编程指北】关注这个不一样的程序员,等你来撩~ 注:这篇文章好好看完一定会让你掌握好指针的本质 C语言最核心的知识就是指针,所以,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解。 不了解的对指针的理解就停留在“指针就是变量的地址”这句话,会比较害怕使用指针,特别是各种高级操作。 而了解内存模型的则可以把指针用得炉火纯青,各种 byte 随意操作,让人直呼 666。 一、内存本质 编程的本质其实就是.

编程指北 9242

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【c语言】一篇让你学会指针

包含指针所有内容,万字文章

2401_87302168的博客 2473

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

c语言指针用法详解,通俗易懂超详细!

文章转自:无际单片机大家好,我是无际。今天给大家来讲解一下指针。我会由浅到深,最后结合实际应用讲解,让大家学会指针的同时,知道大佬们都用指针来干嘛!长文预警!全文大约5200多字,学指针看...

嵌入式Linux 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C语言指针,楼下大爷都能学会的小细节(和bug郭一起学C系列)

写在前面 本篇博客,博主带你从入门到掌握指针,C语言指针并没有那么难,认真看完,你一定有所收获,建议收藏。 指针指针初识基本概念指针进阶 指针初识 C语言系列1我们已经介绍过了指针一些相关的概念,我们再来复习一下。 基本概念 指针是什么? 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的

bug郭的博客 2778

理解C语言指针

C语言指针理解 本人在初学的时候认为c语言中指针很好理解,但身边好多同学一直在说老师讲的指针太抽象了,看不到,摸不着,非常难理解,甚至学了4年计算机,毕业了,不少同学还说不清楚指针是什么,遇到指针的问题必定出错,这里简单介绍一下。 引言 c语言中有很多抽象的东西,而指针就是其中一个,学好 c 语言就要学会计算机的思维:透过表面看本质。 比如下面一行代码中 两个 ! 运算符 int x = 0; i...

qq_35425070的博客 5972

指针保姆式教学从易到难,让你轻松学会指针【c语言】

相信你看完这篇文章会对指针有比较清晰的认知!

qq_2972806103的博客 4721

C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针

本文档深入探讨了C语言中指针变量的多个方面,从基础到高级应用。首先,介绍了指针变量的定义与引用,这是理解指针概念的基础。随后,详细阐述了指向数组的指针变量,包括一维和二维数组的情形,特别是二维数组中的int *p与int (*p)[m]类型,后者因涉及数组的行地址而显得较为复杂。此外,还讨论了指向字符串的指针变量,这对于处理C语言中的字符串至关重要。进一步地,文章讲解了指向函数的指针变量,这在实现回调函数、动态选择函数等方面非常有用。最后,深入探讨了指针数组和指向指针的指针变量。

weixin_62613321的博客 2032

七天学会C语言-第六天(指针)

七天学会C语言-第六天(指针)

AI创变工坊,和1000万新个体创业者一起成长!愿大家都能跟上时代的洪流,不被社会淘汰,愿大家的生活工作收入都能具备竞争力! 3495

【C语言篇】保姆级详解指针|多图解,包懂,让天下没有难懂的指针

不知道你学指针的时候有没有这样的疑问,指针变量前面的这个"*"星号是什么,解引用的这个“\*”和又是什么,和前者是一样的吗?初次听到“指针”这个“高级名词”是不是也“不寒而栗”(好高级的名字,而且别人都说指针最难学啦--瑶瑶子的亲身感受哈哈)。学校里面老师说“这是行指针,这是列指针,记下来吧,没有别的办法”--(碎碎念:瑶瑶子高程老师说的😅,我内心:???) 真的没有骗大家,学校里的高程教材!!!老师居然让我把这些全部记下来?????)

Yaoyao2024的博客 6751

【C语言】(14)一篇文章学会C语言最难指针

CPU处理数据时,会向内存读取数据和写入数据。因为内存比较昂贵,所以电脑的内存大小一般是8GB/16GB/32GB等;而外存比较便宜,一般是500GB/1T等。内存这么小,那么是如何高效管理的呢?内存被分为了一个个内存单元(相当于宿舍的房间),每个单元大小为1字节,及8 bit(相当于床位) ,每一个 bit 位上会存放1或者0(相当于住宿的人)。每一个单元的编号,就叫做地址(相当于房间号),在C语言中地址有一个新名字,叫做指针。因此,内存单元的编号 == 地址 == 指针。存放整数的数组叫做整数数组;

2401_86272648的博客 1688

看聊天记录都学不会C语言?太菜了吧》(17)5分钟搞懂指针与多重指针

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若有想学习的内容可以在评论区留言,根据大家的要求持续更新。点赞过十万就算化成灰我也更新下一篇。(肯定不到,也会更的。) 有问题也可以在评论区留言,也可以私聊我加我好友共同交流一起进步~ **喜欢内容欢迎关注我、评论、点赞、收藏,这对我很重要,谢谢~** _____ ## 由于部分粉丝要求想

1_bit 的博客 1万+

C语言指针全归纳-初级版

C语言作为一门较为好上手的高级计算机语言,我相信任何一个开始学习编程的人都是先从他开始入手的,但是其中的指针曾叫人叫苦不迭。本文章旨在全面梳理C语言指针的知识点,内容非常宏大且精细,希望可以给看到本篇文章的人带来全新的指针认识。 本文章主要内容1. 什么是指针2. 指针的类型有哪些3. 野指针4. 指针的运算5. 指针和数组6. 二级指针7. 指针数组 1. 什么是指针 先来看看定义 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器

weixin_53451597的博客 5129

C语言:深入理解指针(3)

通过深入理解指针(1)和深入理解指针(2),我们对指针有了一个初步的了解,学会了一级指针、二级指针、指针数组……而深入理解指针(3),主要是为了学习不同数据类型的指针变量。

weixin_51142926的博客 4326
上一篇: 【OpenCV学习】Mat数据结构与图像通道的分割与融合
下一篇: 【OpenCV学习】绘制图形其一
user_from_future
博客等级 码龄5年 4067粉丝 115原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值