废话少说,直入正题
话说指针是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这的相同点就是他们的地址是相同的,所以凡是对应这个地址的值都相同