关于c语言的一点点感悟

今天在c语言书上看到了一个题,是这样的:
#include <stdio.h>

int main()
{
int k=2,m=4,n=6;
int *p1=&k,*p2=&m,*p3=&n;
*p1=*p3;
*p3=*p1;
if(p1==p3)
p1=p2;
printf("p1=%d,p2=%d,p3=%d\n",p1,*p2,p3);
return 0;
}
这样的输出结果是这样的:
p1=6,p2=4,p3=6;

这使百思不得其解,p2,p3 中存的不就是m,n的地址吗,为什么会不相等尼,于是我用gdb调试了一下,结果:

(gdb) p &m
$7 = (int *) 0x7fffffffdb38
(gdb) p &n
$8 = (int *) 0x7fffffffdb3c
(gdb) p &k
$9 = (int *) 0x7fffffffdb34
(gdb) p p1
$10 = (int *) 0x7fffffffdb34
(gdb) p p2
$11 = (int *) 0x7fffffffdb38
(gdb) p p3
$12 = (int *) 0x7fffffffdb3c
(gdb)

哦,原来是这样的,刚开始的时候已经给他们分配好了各自的地址,而执行的*p1=*p3;并没有改变p1,p3中的内容,只是改变了p1,p3所指向的变量m,n所在存储单元中的值,p1,p3中存的依旧是原来刚分配的地址。所以p1!=p3.

时间: 2024-10-27 06:46:52

关于c语言的一点点感悟的相关文章

关于阅读书籍的一点点感悟

大学开始就一直都有读书的习惯,书的类型主要是技术,心理学,职业规划,鸡汤书等,可是读书的“历程”却经历了很多: 大学时候: 没有真正认真去看完过一本经典的技术书,看一本书靠的是一点点毅力加兴趣,最后往往浅尝辄止,非技术类的一本书也往往只看一半多就没继续了. 工作至今两年了,读书经历了三个阶段: 1.倒是能坚持看完,但是不做笔记,往往结果就是:然后就没有然后了. 2.看完一本书,写读书笔记,并用豆瓣记录下自己的书单,记录的好处就在于你可以很快回忆起这本书的内容和量化你读的东西. 3.功利性的阅读,

C语言新手的一些感悟

接触C语言两个多月,从谭浩强的<C程序设计>入门,绊绊磕磕的学了个不清不楚.有在计算机学院和软件学院就读的,他们中有之前接触过并借此通过自主招生被高校降分录取的,也有和我一样的小白,但慢慢的也走到我前面去.学校里也开设了实验课,但每次被班里的积极分子抢先后兴趣也就不那么大了.我开始尝试通过互联网这个本时代最强大的老师进一步学习程序设计,虽然不确定成为一名软件工程师(码农)的可能性有多大,但仍然想学好C语言.因为只有深入接触,我才能发现自己的兴趣点和特长在哪.这便是我创建此博客的初衷之一.谢大家

关于团队成员之间协作的一点感悟

我以前做什么都喜欢一个人,静悄悄地,谁都不鸟.工作了之后更多的是团队协作,十几个人的项目组和十来个人的部门都待过,打过交道的人多了之后对人与人之间的合作关系就有了一点点感悟,特此做一下总结. ----------------------------------------------------------------------------------------------- 关于BUG 现代软件都是多个工(wu)种(zhong)之间互相配合协作开发的,既然哥几个搭伙儿搞事情,事情搞多了,就

php 语言总结

php 语言总结:基础语法 类型  常量 运算符  流程控制  函数 类与对象 命名空间  超全局变量  垃圾回收机制 1 基本语法 *php标记 <?php echo "Hello world"; // ... more code echo "Last statement"; // 脚本至此结束,并无 PHP 结束标记 注意:如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记. 这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符

在探索中感悟,在摸索中前进--ET之快递法

飞测说:最近很多朋友问如果没有需求文档,我该怎么测试?我自然想起了探索测试,今天来说说自己在探索测试路上的一点点感悟-------快递测试法,让我们在探索中感悟,在摸索中前进-- 快递测试法,是从ET学习中了解到的一种测试方法,顾名思义就是数据类似于那些通过联邦快递系统,在这个星球上被不断移动的包裹一样,在软件中也是不断的流动.数据从被输入后就开始了它的生命周期,先被存储在内部变量和数据结构中,然后再计算中被频繁操作.修改和使用,最后,这个数据作为输出被"递送"给用户或目的地. 在这个

学习Java语言的小技巧

最初接触到的计算机编程语言是C语言,再有了c语言的基础上,Java入门也变得简单多了.Java其实是一个地名,盛产咖啡,所以图标像咖啡一样,然而慢慢接触,你才能体会到Java的甘甜. Java的运行时在虚拟机上面的,也就是说Java相比于c语言直接接触硬件的操作安全的多,Java用虚拟内存访问数据,我编译Java用的是Eclipse这个软件,这个软件是完全免费的,初学者可以到官网去下载.当你安装好Eclipse的时候,是不能使用的,因为缺少运行环境,你还需要下载一个JDK,也就是给Java运行的

《大道至简——软件工程实践者的思想》读后感(一)

在老师推荐书目之前 读过的编程书 基本都是教辅为主的 像谭浩强先生编著的<c++程序设计>以及<java程序设计>等等 都是目的性很强的书籍 很基础性的书籍 从来没有读过类似<大道至简><梦断代码>这类书籍 我非常感兴趣 希望再老师的指导下 认真的学习这些书籍 对自己的学习和以后的工作起到长足的影响 首先 我粗略的看了下这几本书目录 一下就被这本书所吸引 在我看来 这本书充满了哲学的味道 在读惯了枯燥的代码书籍 这本书 给我耳目一新的感觉 如同新大陆一般 编

2019年Python、Golang、Java、C++如何选择?

前言 作为开发者我们都知道,开发后台语言可选择的方向会很多,比如,Java,go,Python,C/C++,PHP,NodeJs….等很多,这么多语言都有什么样的优势?如果让你学习一门后端语言,又该如何选择呢? Java 编译语言,速度适中(2.67s),目前的大型网站都是拿java写的,比如淘宝.京东等.主要特点是稳定,开源性好,具有自己的一套编写规范,开发效率适中,目前最主流的语言. 作为编程语言中的大腕.具有最大的知名度和用户群.无论风起云涌,我自巍然不动.他强任他强,清风拂山岗:他横由他

一个小小的总结2015

昨天晚上复习微机原理,复习到想要放弃,晚上想了很多,反省了很多,回顾自己这两年多的大学生活,是时候总结和反省下啦,否则真的就晚了.或许是因为考试,每到考试的时候总会想很多,后悔很多,计划很多,然后考试完之后,一切计划都忘了,反省也忘了,还是原来的自己.考前觉得自己非常堕落,非常可耻.看书复习一是看不懂而是不想看,觉得没意义,平时不学考前突击,理解不了那些知识没有学到真正的东西,然后就不想去看书,然后挂科...(好在现在还没挂)考试时还没心思搞项目,觉得不务正业,学习都学不好还搞个屁的水项目啊,觉