[cpp018]指针和数组

110 阅读1分钟

1、很多情况下,可以把数组名用作指针

-   输出数组是,可以得到数组在内存中的16进制地址(char类型数组例外-输出的默认是字符串)

double values[10];
std::cout << values << std::endl;

2、指针的算术运算

  • 可以对指针执行算术运算,修改它包含的地址,就是一个指针原先指向一个元素的地址,可以修改为指向其他元素的地址.
  • 只能对指针进行加减运算,还可以比较指针
  • 可以从一个指针中减去另一个指针,其结果是一个整数而不是地址.
double values[10];
values += 1;

  • values开始存储的地址对应数组的第一个元素,给values加1就是对他包含的地址递增8,结果指向下一个数组元素的地址.
  • 也可以让指针直接指向第二个元素地址: double *p = &values[1];

3、使用数组名的指针表示法

  • 把数组名用作指针来确定数组元素的地址
定义一维数组: long data[5];
元素data[0],可以表示为: *data;
元素data[1],可以表示为: *(data+1);