指针
指针可以理解为变量存储的地址
存放指针的变量就是指针变量
int(说明p指向的对象是int类型)*(说明p是指针变量) p = &a;
#include <stdio.h>
int main()
{
int a = 10;
&a;//取出变量a的地址
int* p = &a;//创建了一个int型的指针变量来存储变量a的地址
*p = 20;//解引用操作符,通过p中存放的地址,找到p所指向的对象,约等于a=20
return 0;
}
指针变量的大小取决于地址的大小
32位平台下地址是32个bit位(即4个字节)
64位平台下地址是64个bit位(即8个字节)
结构体
结构体是把一些单一类型组合在一起的做法
#include <stdio.h>
struct stu {
char sex[10];
int id;
int age;
char name[];
};//创建了一个结构体,包含这些变量,结尾记得;
void print(struct stu* ps)
{
//*ps解引用操作符,但是记得一定要()
printf("%s %d %d %s\n", (*ps).name,(*ps).id,(*ps).age,(*ps).sex);
//结构体指针变量 -> 成员名
printf("%s %d %d %s\n", ps ->name,ps ->id,ps->age,ps ->sex);
}
int main()
{
struct stu s = {"nan",2024,18,"zhangsan"};
//调用这个结构体,并按顺序赋值,命名为s
printf("%s %d %d %s\n",s.name,s.id,s.age,s.sex);
//结构体对象.成员名
print(&s);
return 0;
}