指针%p输出的一些认识

还是看源码发现的问题

static int import_lowe_features( char*filename, struct feature** features )

这个函数的作用是将txt文件中的Lowe的特征点导入到feature结构体中。在这个函数中第二个参数是指向结构体的指针的指针。

f = calloc( n, sizeof(struct feature) );//在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针。再加一个for循环就实现了将txt文件中的n个特征点导入。最后*features = f;又将首地址赋给features,注意到这里的features是复数,指一幅图像中所有特征点的集合,但不明白为什么要再加一层指针。对指针的理解不够,这里应该就是导入特征点进行匹配时出错的原因。

https://blog.csdn.net/qq_14936041/article/details/53139047

#include <stdio.h>

#include<stdlib.h>

int main(void)

{

         inta;

         //printf("%p",a);

         a= 10;

         printf("%d\n%p\n",a, a);

         int*p;

         p= &a;

         printf("%d\n%d\n%p\n",p,*p, p);

         getchar();

         return1;

}

注释掉的//printf("%p", a);是为了输出初始化前变量a的地址,但c++中已经不允许这么做,会报错errorC4700: 使用了未初始化的局部变量“a”。初始化的过程才会给变量自动分配地址。

这是输出结果。这里用了变量名和指针的方式访问a,可以看到,输出的a的值都是一样的,但是a的地址和p的值及p的地址是不同的。指针变量也是一个变量,初始化的过程会赋值一个新的地址,这个地址当然和a的地址不一样,但是p的值不就应该是a的地址吗,为什么和之前输出的不一样呢?

简单修改一下代码,因为其实一直没有关注&a这个值。

int a;

         //printf("%p",a);

         a = 10;

         printf("a的值:%d\n",a);

         printf("a的地址:%p\n",a);

         printf("a的地址&a=%d\n",&a);

         printf("-------------\t\t\t\t\t\t\n");

         int*p;

 

         p = &a;

         printf("取p中的内容*p=%d\n",*p);

         printf("取p中的值p=%d\n",p);

         printf("取p中的地址:%p\n",p);

         printf("取p中地址&p=%d\n",&p);

         //printf("%d\n%d\n%p\n%d\n",p,*p, p,&p);

         getchar();

发现&a的值,即a的地址值确实等于p的值,但是为什么用%p打印出的a的地址和&a的值不一样呢?而且用%p打印出的p的地址也发生了变换。地址的变化可以理解,是因为动态分配内存。

原来是打印地址时,虽然使用了%p指针格式控制符,但是要想输出地址,还是要输出的是%a,而不能是a。指针格式%p意味着输出的是十六进制的数而已,这个数是指针指向数据的地址,所以%p格式输出的指针p就是%d格式输出的&a。其实a不是指针,按道理应该是不能输出%p格式的。

这是网易笔试的一道题,问他的输出是多少。考察的就是对指向数组的指针的认识:

int main()
{int arr[] = {1,2,3,4,5,6,7};int *p = arr;*(p++) += 89;printf("%d,%d\n", *p,*(++p));return 0;
}
*p是指向数组首地址的指针。这里要说的是数组名是数组首元素的首地址,同时也是一个指针常量,存放数组首地址。二者数值上相同,操作不同。数组名作指针常量处理时不能作左值,不能自加自减。在作函数形参的时候沦为普通指针。

这里把arr赋值给*p,通过指针访问数组元素,其实数组下标的访问方式就是通过指针实现的。所以关键就在于p的取值,即地址是第几个元素的地址。

*(p++)+=89

*(p++)=*(p++)+89//两个++都是在p之后,所以在这一行中p的值没有影响,所以p还是指向第一个元素,只不过第一个元素被修改为90

按道理继续格式化输出的p已经加了一次,应该指向第二个,第三个元素。但是程序输出不是这样

#include<stdio.h>
#include<string>
int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7 };int *p = arr;*(p++) += 89;printf("\*p的值%d\n", *p);printf("\*p的值%d,\*(p++)的值%d\n", *p, *(++p));getchar();return 0;
}

若是直接在修改第一个元素之后输出*p,是第二个元素的值,如果连同*(p++)一起输出,先计算p++,再输出,这时候p指向了第三个元素。



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

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

相关文章

全球智慧医疗产业发展现状

来源&#xff1a;无锡情报所摘要&#xff1a;全球智慧医疗市场主要集中在美国、欧洲、日本和中国,而产品生产主要集中在美国、欧洲和日本。 随着大数据、云计算、物联网和人工智能技术快速发展和普及&#xff0c;运用互联网应用平台提升医疗资源的使用效率、提高救治和服务水平…

2018AI和机器学习界的12个重大收购案

来源&#xff1a;网络大数据据IDC声称&#xff0c;到2018年&#xff0c;全球人工智能(AI)和认知系统支出将达到190亿美元&#xff0c;这比2017年的支出总额增加约54%。并购在不断发生。仅2017年就见证了几起大宗收购&#xff0c;比如雅虎被Verizon收购、苹果收购Shazam等。知名…

PCA对特征点描述子降维

降维在机器学习领域其实是很重要的一部分&#xff0c;因为在高维情形下回出现样本稀疏&#xff0c;计算距离、内积困难&#xff0c;是所有机器学习面临的共同问题&#xff0c;被称为维数灾难&#xff08;Curse of dimensionality&#xff09;&#xff0c;而降维就是解决的一个办…

C语言基础知识整理

一、 关于sizeof和strlen。Sizeof&#xff08;&#xff09;用于计算某类型或者某变量在内存中所占空间。比如整数分为short型&#xff0c;int型&#xff0c;long整型&#xff0c;分别占2,2/4,4个字节&#xff0c;int型具体占用几个字节和编译系统有关。我们输入字符串时通常用c…

【2017-2019】Gartner战略技术趋势一览

来源&#xff1a;学术plus 、装备参考近期&#xff0c;Gartner公布了2019年十大战略技术趋势的预测&#xff0c;值此之际&#xff0c;本文总结回顾并简要分析了2017-2019三年的战略趋势变化。Gartner副总裁兼研究员David Cearley指出&#xff1a;在智能、数字、网格三大领域下的…

目标检测必看——RCNN是怎样融合了分类与回归,CNN与SVM

人和动物的区别之一是人能使用工具&#xff0c;而在人开始使用磨制石器时人类进入新石器时代。在目标检测领域&#xff0c;也有一个划时代的算法&#xff0c;在它之后目标检测开始进入深度学习的时代——它就是今天的主角&#xff1a;R-CNN。在RCNN之后&#xff0c;出现了更多优…

《自然》杂志:面对“电车难题”,不同国家的人有不同的道德选择

来源&#xff1a;36Kr电车难题原本只是一个思想实验。但是无人车的发展却绕不开这个问题。因为机器在无论如何都会撞死人的情况下必须靠预先植入的道德代码做出判断&#xff1a;该牺牲谁&#xff0c;该保谁。但是一项有全球230万人参与的调查表明&#xff1a;这个问题并不存在普…

Mac OS X Terminal 101:终端使用初级教程

文章目录1 为什么要使用命令行/如何开启命令行&#xff1f;2 初识Command Line3 关于 man 命令4 命令行&#xff0c;文件和路径 4.1 两种路径&#xff1a;绝对路径和相对路径4.2 切换到其他路径和目录4.3 处理特殊字符4.4 查看隐藏文件4.5 前往其他卷5 用Command-Line管理文件 …

Fast R-CNN整体把握

RCNN很好地解决了目标检测分类和定位的问题。但是缺点是速度太慢。 原因1&#xff1a;2k个候选区域都要经过变形成统一的正方形才能依次输入CNN进行特征提取。候选区域可能是互相包含的&#xff0c;这就导致原图同一个区域特征的重复提取。 原因2&#xff1a;RCNN的分类和回归…

2万字看完腾讯最纯粹的一届WE大会:从黑洞、虫洞到克隆猴

来源&#xff1a;虎嗅APP腾讯还有梦想&#xff0c;因为腾讯还有WE大会。5年来&#xff0c;腾讯从全世界邀请了几十位难得一见的科学家不远万里来到北京展览馆&#xff0c;比如去年邀请的剑桥大学教授、著名宇宙学家霍金&#xff08;视频演讲&#xff09;&#xff0c;不想成为绝…

Fater R-CNN 整体把握

在R-CNN中提到过&#xff0c;候选区域的提取和之后的目标检测其实是独立的&#xff0c;所以我们可以使用任意的算法如SS。Fast-RCNN改进的是目标检测部分&#xff0c;但是其实候选区域的提取也挺费时的&#xff0c;Faster R-CNN就把改进方向放在了这里。 我们已经领略到了CNN的…

马斯克,特斯拉首席小白鼠

来源&#xff1a;量子位伊隆马斯克&#xff0c;比你想的还要激进。作为特斯拉CEO&#xff0c;马斯克经常一边自己坐在Model S上&#xff0c;一边召开电话会议。车辆的驾驶交给Autopilot&#xff0c;也就是那个时不时会出次意外的自动驾驶系统。他这么做不仅仅是想节约时间&…

windows下caffe+CPUOnly实现MNIST手写分类

工具下载 微软官方移植的Caffe&#xff1a;https://github.com/Microsoft/caffe 对属性表的操作需要把实例属性表的后缀改成vs可用的.props 打开同一个文件夹下的Caffe.sln&#xff0c;查看其中的属性表<CpuOnlyBuild>true</CpuOnlyBuild><UseCuDNN>false<…

Yann LeCun专访:我不觉得自己有天分,但是我一直往聪明人堆里钻

来源&#xff1a;AI 科技评论摘要&#xff1a;纽约大学教授、Facebook 副总裁与首席 AI 科学家 Yann LeCun 由于对深度学习的突出贡献&#xff0c;被誉为深度学习的「三驾马车」之一&#xff0c;更被称为「CNN」之父。Yann LeCun 也一直非常活跃&#xff0c;发论文、教学、创立…

任务分配调整

在经过新一轮分工讨论后&#xff0c;我们将我们最初的分工做了一次更新。截图于此。但是同样&#xff0c;基于敏捷开发的原则&#xff0c;任务将会在过程中为适应遇到的情况而不断更新。 请大家及时完成各自任务&#xff0c;并每天22点之前在tfs上更新完毕&#xff0c;同时将当…

以LeNet-5为例理解CNN

在用caffe实现对MNIST手写数字分类的过程中发现利用的网络是LetNet-5.决定从这个网络入手好好认识一下CNN。 LeNet-5早在1998年就出现了&#xff08;5表示5层模型&#xff09;&#xff0c;标志着CNN的诞生。以其作者YannLeCun的名字命名。但是却没有得到广泛的应用&#xff0c;…

任正非最新谈话:直到2006年,我才真正抛弃自杀的念头

来源&#xff1a;世界科技创新论坛摘要&#xff1a;日前&#xff0c;一份任正非会见索尼CEO吉田宪一郎会谈纪要流出&#xff0c;这份纪要以吉田宪一郎发问任正非的视角&#xff0c;揭开了不少华为鲜为人知的故事&#xff0c;其中涉及华为的管理、创业之初的故事&#xff0c;还有…

前沿 | 历时十二年!曼彻斯特百万级神经元的类脑超算终开启

具有百万处理器内核的「脉冲神经网络架构」或 SpiNNaker&#xff0c;每秒能完成约 200 兆次运算。来源&#xff1a;机器之心摘要&#xff1a;这台世界最大的神经形态超级计算机由曼彻斯特大学计算机科学学院设计和制造&#xff0c;它被设计和制造成与人脑相同的工作方式&#x…

Caffe中的卷积实现

https://www.zhihu.com/question/28385679 https://github.com/Yangqing/caffe/wiki/Convolution-in-Caffe:-a-memo 作者贾扬清亲自解释了这个问题。Caffe框架是他在研究生毕业毕业前两个月的时间写的&#xff0c;自然有一些缺点&#xff08;占用内存方面&#xff09;。其实卷积…

小程序创业:新金矿、野望与焦虑

来源&#xff1a;视觉中国摘要&#xff1a;小程序正在带来新的红利&#xff0c;互联网上的生意可以再做一遍&#xff1f;张远想要尽可能地保持低调&#xff0c;但现在这个愿望正在变得越来越难。在最近几个月阿拉丁小程序排行榜上&#xff0c;糖豆广场舞、糖豆爱生活、糖豆每日…