数组的指针?(指向数组元素的指针)
一维数组的指针: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
一维数组的指针: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