字符指针: char*p--->指向字符的指针
整型指针: int*p------>指向整型的指针
数组指针:int(*p)[5]------>指针p指向有五个元素的整型数组
指针数组:int* p[5]是数组,该数组有五个指针
理清这一部分需要有题目的支撑:
int*p, int*p[5],int(*p)[5] int(*p[10])[5]--->是数组,p[10]即是数组,int(*)[5]即为数组的类型
表示该数组10个元素每个元素是数组指针指向有五个元素的整型数组
// 写一段代码:
#include<stdio.h>
int main()
{
char arr[]="abcdef";
char arr1[]=""acbdef";
const char*p="abcdef";
const char*p1="abcdef"
if(arr=arr1)
{
printf("hehe");
}
else
printf("haha");
return 0;
}
// 结果为hehe, arr,ar1是首元素地址,即‘a’的地址,但a所在地址是在arr这个数组和arr1这个数组,地址肯定不同
//如果p=p1, 指针字节一般为4(32)或八个字节(64)p与p1指针只存字符串abcedef中a的地址所以,“abcdef”常量字符串地址以为其不改变所以只有一个地址,故地址相同
讲一个规律:
适合二维数组
int(*p)[5]=&arr