- 前言
- 一、结构体与结构体指针
- 1.结构体的定义、引用与初始化
- 2.结构体指针
- 3.typedef的使用
- 二、C++的引用
- 1.数字
- 2.指针
前言
本文主要介绍结构体的使用。
一、结构体与结构体指针 1.结构体的定义、引用与初始化
结构体与结构体数组
#define _CRT_SECURE_NO_WARNINGS #include2.结构体指针//结构体声明 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };// 注意分号不能省略 int main() { //黑框提示语 printf("请输入以下信息并以空格分隔,以回车结束n"); printf("学号 姓名 性别(W/M) 年龄 分数 地址 n"); //定义及初始化结构体 struct student student_1 = { 1001,"马云",'M',23,97,"杭州" }; //定义结构体数组 struct student sarr[3]; //获取结构体数组信息 for (int i = 0; i < 3; i++) { scanf("%d %s %c %d%f%s", &sarr[i].num, &sarr[i].name, &sarr[i].sex, &sarr[i].age, &sarr[i].score, &sarr[i].addr); } //结构体信息输出 printf("%d %s %c %d %f %sn", student_1.num, student_1.name, student_1.sex, student_1.age, student_1.score, student_1.addr); //结构体数组信息输出 for (int i = 0; i < 3; i++) { printf("%d %s %c %d %f %sn", sarr[i].num, sarr[i].name, sarr[i].sex, sarr[i].age, sarr[i].score, sarr[i].addr); } }
#define _CRT_SECURE_NO_WARNINGS #include3.typedef的使用//结构体声明 struct student { int num; char name[20]; char sex; };// 注意分号不能省略 int main() { //黑框提示语 printf("学号 姓名 性别(W/M)n"); //定义结构体 struct student student_1 = { 1001,"马云",'M'}; //定义结构体指针 struct student *p; //结构体指针赋值 p = &student_1; //结构体指针信息输出方式1 printf("%3d %3s %3c %n", (*p).num, (*p).name,(*p).sex); //结构体指针信息输出方式2 printf("%3d %3s %3c %n", p->num, p->name, p->sex); //结构体数组定义与初始化 struct student starr[3] = {1001,"马云",'M',1008,"马化腾",'M',1009,"王兴",'M'}; //定义结构体指针 struct student* q; //结构体指针赋值 q = starr; //++的作用 int num_1 = q->num++;//num_1 = q->num;(q->num)++; printf(" num_1=%d,p->num%dn", num_1, q->num); int num_2 = q++->num;//num_2=q->num;q++; printf(" num_2=%d,p->num%dn", num_2, q->num); }
A.typedef结构体
#define _CRT_SECURE_NO_WARNINGS #includetypedef struct student //结构体声明 { int num; char name[20]; char sex; }stu,*pstu; int main() { stu s = { 1001,"马云",'M' };//结构体定义 pstu p;//结构体指针定义,等价于stu* p; p = &s; printf("s.num=%d,p->num=%dn", s.num, p->num); }
B.typedef整型
#define _CRT_SECURE_NO_WARNINGS #include二、C++的引用typedef int INTEGER;//给int起别名,为了代码即注释 int main() { INTEGER i = 5;//INTEGER类型定义 printf("%dn", i); }
本部分用C++语言的引用代替C语言的指针,为后面简化代码、学习数据结构做准备。
1.数字C语言:
void modifynum(int* b)
{
*b = *b + 1;
}
int main()
{
int a = 10;
int* p = &a;
modifynum(p);
printf("a=%dn", a);
}
C++语言:
# include2.指针//把&写到形参中,称为引用,此时操作b和在主函数中操作a等价 void modifynum(int& b) { b = b + 1; } int main() { int a = 10; modifynum(a); printf("a=%dn", a); }
C语言:
C++语言:
# include#include void modify_pointer(int*& p) { p = (int*)malloc(20); p[0] = 5; } int main() { int *q= NULL; modify_pointer(q); printf("q[0]=%dn", q[0]); }



