1 // 17-指针和数组.cpp: 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5 #include <iostream>
6 #include <climits>
7
8 using namespace std;
9
10 int main()
11 {
12 int a[]{345,65,23,7,2,856,23,83,176};
13 cout << a << endl;//输出数组的时候也输出一串地址,输出的地址是数组的第一个元素的地址。在C++中数组也是指针。
14 //如果数组a是指针,那么可以同个*a查看指针的值,应该就是345。
15 cout << *a << endl;
16 //当指针是数组的时候,可以加减法运算的,+1就指向数组中的下一个元素。
17 cout << *(a + 1) << endl;//输出的值为65
18
19 *(a + 1) = 1000; //a+1指的是a数组的第二位,将a数组的第二位的值修改为1000。
20 cout << a[1] << endl;
21
22 //所以数组的访问不止可以通过数组名加编号,还可以通过指针的方式访问和设置数组中的值。
23
24 //使用new创建数组。
25 int* p = new int[20]; //主动申请的内存都要delete
26 p[0] = 90;
27 cout << p[0] << endl;
28
29 *(p + 2) = 80;//通过指针修改值。
30 cout << p[2] << endl;
31
32 delete[] p; //如果申请的是数组,就得用delete[]删除数组p
33
34 //推荐还是用正常的方式创建数组,指针慎用!
35
36 int t;
37 cin >> t;
38 return 0;
39 }