鹏哥C语言:指针与数组(二级指针)——结构体初阶24:08
复习:
int a = 10;
&a //取地址a
int *pa =&a ; // pa是指针变量,一级指针
二级指针
int ** ppa = &pa ; // pa也是变量,&pa取出pa在内存中起始地址赋予ppa
// ** 代表是二级指针
int *** pppa =&ppa ; // 甚至可以有三级指针,存的是ppa的地址
指针数组
int * parr[5]; // 整形指针的数组,存放指针的数组
结构体
- 也是一些值的集合,但是值的类型可以不同,这些值称为成员变量,类型可为指针、标量、数组甚至其他结构体
- 结构体的声明
//结构体的声明
struct Stu{
//成员变量
char name[20];//名字
int age;//年龄
char id[20];
}s1,s2; //s1和s2也是结构体变量
//s1,s2是全局变量
int main() {
struct Stu s;//
- s1和s2也是结构体变量
s1,s2是全局变量 - 结构体变量初始化
接上个代码块
struct Stu c = {"SO_MAGIC",19,"112334"};//注意id是字符类型要加双引号
- 访问结构体中的成员 ( 点操作符、箭头操作符(主要用于指针))
printf("%d\n",c.age);
struct Stu * ps = &c;
printf("%d\n",ps->age);
printf("%d\n",(*ps).age);//也可以这样做,两个输出一样
- 结构体传参:例打印结构体
print1( c);//哲理直接写c就可以了,传进去的是c这个结构数组
//下面是方法
void print1(struct Stu t) {
printf("%s\n%d\n%s", t.name, t.age, t.id);
}