指针的概念:
1、指针就是个变量,用来存放地址,地址唯一标识一块内存空间
2、指针的大小是固定的是4/8个字节(32位平台/64位平台)
3、指针是有类型,指针的类型决定了指针的+-整数的步长
4、指针的运算
字符指针char*
#include<stdio.h>
int main()
{
char arr[]="abcdef";
char*pc=arr;
printf("%s\n",arr);
printf("%s\n",pc);
return 0;
}
输出结果均为abcdef
#include<stdio.h>
int main()
{
const char*p="abcdef";//"abcdef"是一个常量字符串
printf("%s\n",p);
printf("%c\n",*p);
return 0;
}
输出结果:
abcdef
a
这里把“abcdef‘看成了一个常量字符串
指针数组
指针数组是数组,用来存放指针
#include<stdio.h>
int main()
{
int arr[10]={0};//整型数组
char ch[5]={0};//字符数组
int*parr[4];//存放整型指针的数组-指针数组
char*pch[5];//存放字符指针的数组-指针数组
int i=0;
for(i=0;i<4;i++)
{
printf("%d\n",*(arr[i]));
}
return 0;
}
#include<stdio.h>
int main()
{
int arr1[]={1,2,3,4,5};
int arr2[]={2,3,4,5,6};
int arr3[]={3,4,5,6,7};
int*parr[]={arr1,arr2,arr3};
int i=0;
for(i=0;i<3;i++)
{
int j=0;
for(j=0;j<5;j++)
{
printf("%d ",*(parr[i]+j));
}
printf("\n");
}
return 0;
}