1.结构体变量的定义以及与结构体变量调用的两种方式
#include <stdio.h>
结构体变量的定义(3种)
直接定义
struct stu
{
char name[20];
int age;
int height;
};
struct stu stu1;
直接初始化定义
struct stu
{
char name[20];
int age;
int height;
};
struct stu stu1 = {"Tom",18,180};
使用typedefine定义(注意格式)
typedef struct
{
char name[20];
int age;
int height;
} person;//一般把这个名字放到最后面
person person2;//此时person2就是一个结构体变量
结构体变量的引用是通过.操作符;
打印指针变量的地址
#include <stdio.h>
int main()
{
int a = 20;
int* p = &a;
printf("%p\n", p);//以十六进制打印
char ch = 'a';
char* c1 = &ch;
printf("%p\n", c1);
double a2 = 3.14;
double* p2 = &a2;
printf("%p\n", p2);
return 0;
}
*解引用操作符用法
#include <stdio.h>
int main()
{
int a = 10;
int* p = &a;
*p = 20;
printf("%d", a);//输出20
return 0;
}
求指针变量的大小 sizeof(指针变量名)
#include <stdio.h>
int main()
{
int a = 10;
int* p1 = &a;
printf("%zd\n", sizeof(p1));//64位机器指针变量大小为8字节,32位是4字节
char ch = 'c';
char* c1 = &ch;
printf("%zd\n", sizeof(c1));
return 0;
}
两种调用指针变量的方式
#include <stdio.h>
struct Stu//定义结构体变量(未初始化)
{
char name[20];
int age;
float score;
};
void print1(struct Stu t)
{
printf("%s %d %f", t.name, t.age, t.score);
}
void print2(struct Stu* t)
{
printf("%s %d %f", (*t).name, (*t).age, (*t).score);
}
void print3(struct Stu* t)
{
printf("%s %d %f", t->name, t->age, t->score);
}
int main()
{
struct Stu t = { "mike",20,59.9};
print1(t);//第一种调用方式 结构体变量.成员名称
printf("\n");
print2(&t);
printf("\n");
print3(&t);
return 0;
}