指针
#include<stdio.h>
int main() {
int a = 10;//向内存申请4个字节,存储10
//&a;//取地址操作符
printf("%p\n", &a);//输出地址
int* p = &a;//当想要把a的地址存起来是用指针变量 ====> p就是指针变量
//int 是四个字节,&a==>取地址拿到的是四个字节中最小的地址
*p = 20;//解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象
printf("%d\n", a);
//char ch = 'w';
//char* pc = &ch;
char*p1,*p2,*p3;
//int* p1;
//int* p2;
//不管是什么类型的指针,都是在创建指针变量
//指针变量是用来存放地址的
//指针变量的大小取决于一个地址存放的时候需要多大空间
//32位机器上的地址:32bit位-4byte,所以指针变量的大小是4个字节
//64位机器上的地址:64bit位-8byte,所以指针变量的大小是8个字节
printf("%zu\n", sizeof(char*));
printf("%zu\n", sizeof(short*));
printf("%zu\n", sizeof(int*));
printf("%d\n", sizeof(float*));
printf("%d\n", sizeof(double*));
return 0;
}
结构体
#include<stdio.h>
//结构体
struct Stu
{
char name[20];
int age;
char sex[10];
char tele[12];
};
void print(struct Stu *ps) {
printf("%s %d %s %s \n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
//->
//结构体指针变量->成员名
printf("%s %d %s %s \n", ps->name, ps->age, ps->sex, ps->tele);
}
int main() {
struct Stu s = {"zhangsan",20,"nan","17550399736"};
//结构体对象.成员名 ===> 打印
//printf("%s %d %s %s \n", s.name, s.age, s.sex, s.tele);
//打印函数
print(&s);
return 0;
}