废话少说,直入正题
话说指针是C/C++的灵魂,此言不虚。但是怎么样能更好的理解应用呢?就拿java去类比一下
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
a = 10;
printf("%d",&a);
printf("\n");
printf("%d",a);
return 0;
}
打印结果 2293580 a对应的地址
10 真正a的值
而在java中一个int型的变量是没有指针的,只有对象才会有引用这一说,类似与指针。
再看一下的代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
int a,*pa;
a = 10;
pa = &a;
*pa = 21;
printf("%d",a);
return 0;
}
输出 : 21;
a的值初始是10,pa指向a的地址,*pa也就是pa地址对应的值,发生变化,a自然跟着变化
就类同于:当两个对象都引用同一个对象,任意一个发生改变,另一个亦发生改变。
2这的相同点就是他们的地址是相同的,所以凡是对应这个地址的值都相同
分享到:
相关推荐
void 指针是一种特殊的指针类型,它可以指向任何类型的对象,但是它自身的类型是未知的。因此,void 指针不能进行自增操作,因为系统不知道它指的内容的大小。 void 指针的最大用途在于它不能进行自增操作,这样...
通过将Java的引用与C++的指针进行类比,可以帮助我们更好地把握引用类型变量的实质,即它们是对象的“指针”,存储了对象在内存中的位置,而不是对象本身。 总之,虽然Java语言设计时避免了指针的使用,但通过理解...
指针本身是一种数据类型,其类型由它所指向的对象类型决定。例如,一个int型的指针指向的是一个整数变量的地址。指针的类型可以从其声明语句中识别,去除指针变量名后剩下的部分即为指针类型。指针的类型非常丰富,...
在教学过程中,除了指针的基本概念外,还需要讲解指针与数组、指针与函数等高级用法。例如,指向指针的指针,它是指一个指针变量用来存放另一个指针变量的地址。这种情况下,需要讲解如何通过多级指针来访问数据。 ...
压缩指针的原理可以类比为停车场的例子:假设每个停车位代表64位的内存地址,而车辆编号代表32位的压缩地址。通过将车辆编号乘以2(相当于偏移量),可以定位到对应的64位内存地址。这样,32位的压缩指针就能标识2^...
初学者可能会将函数和函数指针之间的关系类比为基本类型和其指针类型,如`int`和`int*`。然而,这种类比并不完全准确。虽然`FunP`可以被看作是`MyFun`的“地址”,但`MyFun`本身并不是一个可存储的数据,而是代码...
他将面向对象的概念引入其中,使得初学者能够通过类比现实世界中的对象和过程来理解和运用编程。这一时期,他的团队开发了Smalltalk编程语言,并经过不断的迭代完善,Smalltalk成为了面向对象编程的重要里程碑。 ...
总的来说,理解Java中的对象创建、初始化和引用机制,以及类比的“句柄”概念,有助于开发者更好地管理内存,防止因误操作导致的空指针异常等问题,提高程序的健壮性和效率。在编写Java代码时,正确地使用和理解这些...
在基类中声明虚函数(使用`virtual`关键字),使得调用由实际对象的类型决定,而不是指针或引用的类型,这种绑定称为动态绑定,与静态绑定(由编译时确定)相对。 Java语言同样支持多态性,虽然其语法和实现方式略...
文章中还提到可以将引用和指针与Java语言进行类比。虽然Java和C++在很多方面都有相似之处,但在引用和指针的使用上,它们有一些关键的区别。在Java中,所有的对象引用都是通过引用来操作的,与C++中的引用类似,但...
译者前言中,译者杨秀章通过个人经历的类比,将COM技术与儿时的积木玩具以及UNIX下的小程序相比较,形象地表达了COM组件化编程的概念和优势。他强调了COM技术在软件开发中的灵活性和可扩展性,以及它对推动软件工业...
11. **面向对象概念**:尽管C语言不是面向对象的语言,但可能通过类比讲解面向对象的三大特性(封装、继承、多态),以及如何在C++中实现这些概念。 通过北大青鸟4.0的C语言课件,学生不仅可以学习到C语言的语法和...
在C语言中,我们可以类比理解为结构体中的成员变量,它们存储了对象的状态信息。 **事件(Event)**是对象对外部动作的响应。Visual Basic预设了一系列事件,如点击(Click)、双击(DblClick)、加载(Load)、...
这个过程可以类比为在字典中查找单词时使用的索引,`$p1`是查找对象的“指针”。 3. **属性赋值**: 当我们给`$p1`的属性赋值,如`$p1->name = "小明"`和`$p1->age = 80`,这些值会存储在堆中对应于`$p1`的内存...
- 对象和视图指针(Object and View Pointers):对象和视图指针是操作持久化对象和视图的接口,是OOD提供的抽象。 - 数据库操作(Database):OOD文档描述了如何操作数据库,包括连接数据库(Connections)、开启...
链表的概念可以类比为一环接一环的链条,每个结点包含数据和指向下一个结点的指针。 在这个PPT课件中,讲解了链表的基本概念和操作。例如,任务11.1展示了如何使用链表来组织电视节目的信息,包括节目名称、主持人...
10. **面向对象特性**:面向对象的三大特性是继承性、多态性和封装性,类比性不是面向对象的特征。 11. **对象创建**:创建`MyClass a, b[2], *c[2];`会分别创建一个单独的对象`a`,一个包含两个元素的数组`b`,...
不要试图与 C 进行类比,Java 中没有指针的概念。2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在传递基本类型和对象引用的问题。不会直接传对象本身。明确以上两点后。Java 在方法调用传递参数时,因为...
不要试图与C进行类比,Java中没有指针的概念;2. 程序运行永久都是在栈中进行的,因而参数传递时,只存在传递基本类型和对象引用的问题。不会挺直传对象本身。明确以上两点后。Java在方法调用传递参数时,由于没有...
- Java与C/C++的主要区别在于Java是面向对象的,而C++同时支持面向过程和面向对象,且Java没有指针类型,以提高安全性。 3. **Java开发和运行环境** - JDK(Java Development Kit)是Java开发的核心,包含了Java...