做旅游网站的写手,网站举报在哪举报,dante wordpress主题,网页建站如何保存分享指针和数组是密切相关的。事实上#xff0c;指针和数组在很多情况下是可以互换的。例如#xff0c;一个指向数组开头的指针#xff0c;可以通过使用指针的算术运算或数组索引来访问数组。请看下面的程序#xff1a;
实例
#include iostream
using namespace std;…指针和数组是密切相关的。事实上指针和数组在很多情况下是可以互换的。例如一个指向数组开头的指针可以通过使用指针的算术运算或数组索引来访问数组。请看下面的程序
实例
#include iostream
using namespace std;
const int MAX 3;int main ()
{int var[MAX] {10, 100, 200};int *ptr;// 指针中的数组地址ptr var;for (int i 0; i MAX; i){cout var[ i ]的内存地址为 ;cout ptr endl;cout var[ i ] 的值为 ;cout *ptr endl;// 移动到下一个位置ptr;}return 0;
}
当上面的代码被编译和执行时它会产生下列结果 var[0]的内存地址为 0x7fff59707adc var[0] 的值为 10 var[1]的内存地址为 0x7fff59707ae0 var[1] 的值为 100 var[2]的内存地址为 0x7fff59707ae4 var[2] 的值为 200 然而指针和数组并不是完全互换的。例如请看下面的程序
实例
#include iostreamusing namespace std;
const int MAX 3;
int main ()
{int var[MAX] {10, 100, 200};for (int i 0; i MAX; i){*var i; // 这是正确的语法var; // 这是不正确的}return 0;
}
把指针运算符 * 应用到 var 上是完全可以的但修改 var 的值是非法的。这是因为 var 是一个指向数组开头的常量不能作为左值。
由于一个数组名对应一个指针常量只要不改变数组的值仍然可以用指针形式的表达式。例如下面是一个有效的语句把 var[2] 赋值为 500 *(var 2) 500; 上面的语句是有效的且能成功编译因为 var 未改变。