指针学习系列一 基础知识

本系列文记录我对指针的理解,从新手入门级写起,文字代码全手写,大神们发现错误请给我留言,谢谢!欢迎进一步讨论可以联系邮件[email protected]

-1- 基础知识

→ 1指针是一种变量类型,int*和int一样,指针指向变量a是指指针的内容是变量a的地址。
例1 对比普通数据类型
int a=1;
//内存腾出一块4k的空间,首地址给a(设120),a=1则将1填进这块内存
int* b=&a;
//内存腾出一块空间,依据指针所占内存和机子有关,首地址给b(设250),b=&a则将a那块内存的地址给b,即b这块内存里面的内容是120。
// (120)=1,(250)=120,表示内存编号/地址为120的地方内容为1,b指向a
int* b=new int(3);
//内存新分配一块int的空间出来(设300),其地址是b的内容,其内容是3
// (250)=300,(300)=3
例2链表结构
上面的例子其实有隐蔽的地方待挖掘。。
struct node{
    int data;
    node *next;
    node(int d=0,node *n=NULL):data(d),next(n){}
};
// 以下的和例1对比
node *head=new node(2);
// 内存分配两块空间出来,第一块是指针变量空间,首地址给head(250),第二块大小是struct大小,地址(260)交给head的内容
// (250)=260,(260)=2,(260+1*4)=NULL,一个字节int大小
node *p=new node(3);
// 设p地址270,指向280,(270)=280,(280)=2,(280+1*4)=NULL
head->next=p;
// (260)(2)=270
// 对指针变量就形成了一连串的指向:(250)=260,(264)=274,(274)=NULL
→ 书籍《C与指针》
   把指针变量用圆形表示,内存或其他用方块表示,这个结构给我灵感。

下周是考试周,放假慢慢写。

时间: 2025-01-12 04:01:57

指针学习系列一 基础知识的相关文章

Linux学习系列——零基础开始

第一部分 Linux基础命令 1.查看系统信息命令 2.Linux内核版本 Linux学习系列--零基础开始,布布扣,bubuko.com

.net中的并行编程系列-1.基础知识

最近半年一直研究用.net进行并行程序的开发与设计,再研究的过程中颇有收获,所以画了一个图总结了一下并行编程的基础知识点,这些知识点是并行编程的基础,有助于我们编程高性能的程序,里面的某些结构实现机制也蕴含着丰富的软件设计思想,在后续的文章中我会对图里面提到某些数据结构或同步机制的源码进行分析. 注:虽然使用的平台是.net ,但大部分知识点和平台以及语言无关,相关数据结构其他相关平台都有实现,包括优化手段都非常相似. .net中的并行编程系列-1.基础知识,布布扣,bubuko.com

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

如何学习FPGA?FPGA学习必备的基础知识

如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA   基础知识 FPGA已成为现今的技术热点之一,无论学生还是工程师都希望跨进FPGA的大门.网络上各种开发板.培训班更是多如牛毛,仿佛在告诉你不懂FPGA你就OUT啦.那么我们要玩转FPGA必须具备哪些基础知识呢?下面我们慢慢道来. (一) 要了解什么是FPGA 既然要玩转FPGA,那我们首先最重要的当然是要了解什么FPGA.FPGA(Field-Programmable Gate

深度学习FPGA实现基础知识5(网友一致认可的----Deep Learning(深度学习)学习笔记整理及完整版下载)

需求说明:深度学习FPGA实现知识储备 来自:http://blog.csdn.net/zouxy09/article/details/8775360/ Deep Learning(深度学习)学习笔记整理系列 [email protected] http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0  2013-04-08   声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文

lua绑定C++对象系列一——基础知识

本文主要介绍lua绑定C++对象的原理和方法,并能在C/C++定义类和方法,在lua中创建C++类的句柄实例,像面向对象一样去使用C++类实例.为了便于大家理解,系列文章会从基础知识讲解,并通过多个版本的进化,一步步完成从基础到多版本实践的完美结合和深入,彻底理解lua绑定C++对象的原理方法.在阅读本系列文章前,需要具备一定的lua开发经验以及lua与C/C++相互调用操作的知识. 1.基础C/C++和Lua的相互引用调用 我们知道C和lua相互调用,是通过虚拟栈进行数据传递通信的,基础介绍介

[Solution] 单元测试系列(1) 基础知识

单元测试不是软件开发的新概念,在1970年就一直存在,屡屡被证明是最理想的方法之一. 本系列将分成3节: 单元测试基础知识 打破依赖,使用模拟对象,桩对象,模拟框架 创建优秀的单元测试 本节索引: 单元测试与集成测试 测试驱动开发 UnitTest和NUnit 第一个单元测试 命名规范 单元测试与集成测试 单元测试几乎总是基于框架来写的,因为框架可以为我们提供统一的API来管理测试. 常用的框架有Unit Test(MS Test),NUnit(开源) 定义 单元测试是一段代码调用另一段代码,随

[算法学习笔记]算法基础知识

算法基础知识 算法的五大要素 有穷性:算法必须能够在有限个步骤内完成. 确定性:算法的每一步必须有确定的定义. 输入 输出 可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成 循环不变式 循环中的循环不变式可以帮助我们理解算法的正确性.为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的. 2. 保持:循环不变式在循环的每一次迭代开始之前是正确的. 3. 终止:在循环结束时,不变式会给出一个可以对判断算法是否正确有