分类: C/C++
2012-05-30 21:08:16
掠辰影2013-04-16 19:18:44
H_A_N:指针和引用为什么说是动态的,是因为它们的值是可以改变的,指针和引用存放的是存放另外一个值的地址。
比如:int a[4] = {1,2,3,4};
int *p = a;
此时p的值是数组a的首地址,也是a[0]的首地址,如果想输出数组元素的值
p++; 是对的 指针相当于一个磁盘磁头一样,可以指向不同的地方。
a++; 是错的 一般变量或数组,就是固定的存放在某个区域的值。
不知道这样说你能理解不?
谢谢,真的是听君一席话胜读十年书! 举例真的很棒,特别是p++的运用让困扰我很久的问题解决了;不知是不是我看书太少了,这类问题总是遇不到好的例子,幸好遇到楼主
回复 | 举报H_A_N2013-04-14 17:47:27
掠辰影:多态说采用动态绑定技术,即在编译时候不执行而是在运行时候执行,但是指针和引用指向不是一定要指向确定地址吗?这样怎么能体现动态这个词啊,指针和引用也能指向静态绑定啊。。。每次看到这些都很乱
指针和引用为什么说是动态的,是因为它们的值是可以改变的,指针和引用存放的是存放另外一个值的地址。
比如:int a[4] = {1,2,3,4};
int *p = a;
此时p的值是数组a的首地址,也是a[0]的首地址,如果想输出数组元素的值
p++; 是对的 指针相当于一个磁盘磁头一样,可以指向不同的地方。
a++; 是错的 一般变量或数组,就是固定的存放在某个区域的值。
不知道这样说你能理解不?