指针3复习

来源:互联网 发布:怎么训练狗狗坐下 知乎 编辑:程序博客网 时间:2024/06/05 20:42
数组的指针?(指向数组元素的指针)


一维数组的指针:int arr[5]={0}; int *p; p=arr; p++ (每个元素的地址)*p元素的值

二维数组的指针: int arr[3][5]; int *p2; p2++ (指向行的首地址), 指针的方式表示a[i]=(a+i)


二维数组使用指针取值*(a2[i]+j)==*(*(p2+i)+j)


指向数组的指针:


又叫行指针,用来指向某一个数组,它的作用主要体现在二维数组

定义行指针:int arr[5]={0}; int (*p)[5]; p=arr; p=&arr; ‘5’表示要指向数组的指针


对于一位数组: p+1 跑到数组最后一个元素的下一个元素,怎么取值? *(p)[i]

对于二维数组: p+1 跑到下一行 *(*(p+i)+j)


指针数组:


数组的每一个元素都是一个指针变量


char *arr[3]={"Hello world!","kity","cndn"};


crr[0]----->hello world!


crr[1]----->kity


crr[2]----->csdn


char arr[3][13]


好处:节省空间


指针的指针?


指向指针变量的指针变量,称为:指针的指针

int i=5; int *p=&i; int **p2=&p;

获取值:*p2==p的地址

      **p2==i的值


      **p2==*p;


指向函数的指针?


函数名是有入口地址的,能不能通过定义某一个指针,去指向一个函数呢?

可需要使用到指针函数的指针:


int (*p)(); //定义了一个指向函数指针变量p


p=max; //max是一个函数名

(*p)(a,b); //使用指针函数的指针调用指针函数


返回值是指针的函数?

相当于返回值是一个地址


int *max(int a,int b)

////////////////////////////////////////////


结构体的概念:


存储一个可变的数据,使用变量处理

存储同一类型的批量,使用数组


不同类型的数据集合,使用结构体


//结构体的定义
 
struct   结构体名{


成员变量  
}


成员变量定义形式:  (类型名 变量 int a;)


//定义结构体类型的变量
 
struct 结构体类型名 变量名;

//初始化结构体变量的方法


1) 定义的同时初始化  


  struct 结构体名 {


}a,b={...赋值列表...};


2)使用结构体变量初始化


b.XXX=XXX;

a.XXX=XXX;


3)定义结构体变量时初始化 


 struct 结构体名 stu={...赋值列表...}


 //结构体的引用方法

使用结构体变量 结构体变量名 如  stuid


////////////////////////////////////////////////////
原创粉丝点击