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; }