#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
结构体的创建
1
//struct Book
//{
// char name[20];
// int price;
//};
2
//struct Book
//{
// char name[20];
// int price;
//}; b3, b4, b5;//全局的结构体变量
3 重命名结构体
//typedef struct Book
//{
// char name[20];
// int price;
//} Book; //把结构体重命名为Book
//Book b3;
//Book b4;//结构体变量
用法示例 - 在数据结构中很常见
//typedef struct Node
//{
// int data;
// struct Node* next;
//}Node;//把结构体重命名为Node
//int main()
//{
// struct Book b1;//创建局部结构体变量
// struct Book b2;
// Book b3;//用重命名后的结构体来创建变量
// return 0;
//}
//struct Book
//{
// char name[20];
// int price;
//};
//
//typedef struct Book Book;//也可以先创建再重命名
//int b = 0;//全局变量
//
//int main()
//{
// int a = 0;//局部变量
// printf("%d\n", b);
// return 0;
//}
//struct S
//{
// char c;
// char arr[10];
// int* p;
//}s1, s2;
//
//struct S s3; //这两种都是定义结构体全局变量的方法
//
//struct B
//{
// int a;
// struct S s;//结构体成员也可以是另一个结构体成员
// double d;
//}sb1, sb2;
//
//struct B sb3;
//
//int main()
//{
// struct S s4 = { 'c', "zhangsan", NULL };//结构体的初始化
// int a = 0;
// struct B sb4 = { 100, {'q', "lisi", &a}, 3.14 };
//
// return 0;
//}
结构体成员的访问
//struct Book
//{
// char name[20];
// int price;
//};
//void print(struct Book* p)
//{
// printf("%s %d\n", p->name, p->price);
//}
//
//int main()
//{
// struct Book b1 = { "鹏哥C语言", 66 };//默认初始化
// struct Book b2 = { .price = 80, .name = "杭哥C++" };//指定初始化
// //结构体变量.结构体成员
// //printf("%s %d\n", b1.name, b1.price);
// //printf("%s %d\n", b2.name, b2.price);
// //结构体指针->结构体成员
// struct Book* p = &b1;
// //printf("%s %d\n", p->name, p->price);
// //结构体的传参
// print(&b1);
// return 0;
//}
struct S
{
int arr[100];
int n;
};
//编译器需要再开辟一块很大空间给形参,会造成空间的浪费
void print1(struct S ss)
{
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%d ", ss.arr[i]);
}
printf("\n%d\n", ss.n);
}
//结论:
//结构体传参的时候,要传结构体的地址
void print2(struct S* p)
{
int i = 0;
for (i = 0; i < 5; i++)
{
printf("%d ", p->arr[i]);
}
printf("\n%d\n", p->n);
}
int main()
{
struct S s = { {1,2,3,4,5}, 100 };
//print1(s);
print2(&s);
return 0;
}
C语言结构体初阶笔记(初始版)
最新推荐文章于 2024-06-14 09:39:49 发布