1. 字符指针
在指针的类型中我们知道有一种指针类型为字符指针 char* ;
int main()
{
char xp='a';
char *yp=&xp;
*yp='a';
return 0;
}
指向字符:存的是首字符的地址
指向字符串:存的是同一个常量字符串
2. 数组指针
数组指针是指针,不过这个指针是指向数组的。
整形指针: int * ;能够指向整形数据的指针。
浮点型指针: float * ; 能够指向浮点型数据的指针。
int arr[10]={
0};
printf("arr=%p\n",arr);
printf("arr=%p\n",&arr);//&arr 表示的是数组的地址,arr是数组首元素的地址。(两者地址相同但含义不同)
定义数组指针:
int main()
{
int arr[10]={
1,2,3,4,5,6,7,8,9,10};
int(*p)[10]=&arr;
return 0;
}
3. 指针数组
指针数组,是数组,但是这个数组里面存放的是指针。
int* arr1[10]; //整形指针的数组
char *arr2[4]; //一级字符指针的数组
char **arr3[5];//二级字符指针的数组
4. 数组传参和指针传参
一级指针传参:
#include <stdio.h>
void print(int *p, int sz)
{
int i = 0;
for(i=0; i<sz; i++)
{
printf("%d\n", *(p+i));
}
}
int main()
{
int arr[10] = {
1,2,3,4,5,6,7,8,9};