1.指针:
int a=10;
int *b=&a;
变量b被声明为指针,并用其他变量的地址予以初始化。指针的初始化是用&操作符完成的,用于产生操作数的内存地址。
2.数组:
int a;
int b[10];
变量b为数组,当下标和数组名一起使用,用于标识该数组中某个特定的值。数组名的值是一个指针常量,即数组第一个元素的地址。
int arr[10];
int *q=&arr[2];
int *p=arr+2;
3.指针数组:
用于存储指针的数组,也就是数组元素都是指针类型
比如说:
int *arr[10];
即 数组arr中有十个类型是int*的元素([]的优先级高于*)
4.数组指针:指向数组的指针
比如说
int (*ptr)[10];
即ptr是个指向一个包含10个int大小的数组的指针,
(优先级最高的是"()",强调了这是个指针)