c语言结构体大全(千字分享)

目录

创建结构体

结构体赋初值

情况一:在main()函数里面赋值,局部变量 

情况二:在外部设全局变量

 使用结构体

输出

改变值

可变类型

不可变类型

结构体数组

结构体指针

创建指针 

使用指针

函数传递

传递结构体中某一值

传递结构体

创建结构体

struct Product//创建结构体
{ 
	char name[4];int price;int s;
};//看清楚这里还有一个分号

结构体赋初值

类似于其他类型赋初值,要在前面加上类型,结构体赋初值要把定义的结构体加上

struct Product pd1={"zzq",300,2};
struct Product pd2={"zyx",3000,5};

情况一:在main()函数里面赋值,局部变量 

#include <stdio.h>
struct Product//创建结构体
{ 
	char name[4];int price;int s;
};//看清楚这里还有一个分号
int main()
{
	struct Product pd1={"zzq",300,2};//结构体初始化(结构体类型 + {})
	struct Product pd2={"zyx",3000,5};
	return 0;
}

情况二:在外部设全局变量

注意分号位置

struct Product//创建结构体
{ 
	char name[4];int price;int s;
}pd1,pd2;

 使用结构体

(结构体.数组名)

输出

#include <stdio.h>
struct Product//创建结构体
{ 
	char name[4];int price;int s;
}pd1,pd2;
int main()
{
	struct Product pd1={"zzq",300,2};//结构体初始化(结构体类型 + {})
	struct Product pd2={"zyx",3000,5};
	printf("%s\n%d\n%d\n",pd1.name,pd1.price,pd1.s);
	return 0;
}

改变值

可变类型
pd1.price = 5000;

不可变类型

一个一个改

pd1.name[1]='y';
pd1.name[2]='x';

结构体数组

#include <stdio.h>
struct Product//创建结构体
{ 
	char name[4];int price;int s;
}pd[2];
int main()
{
	int i=0;
	struct Product pd[2]={
  {"zzq",300,2},{"zyx",3000,5}};//结构体初始化:结构体类型 + {}
	for (;i<2;i++)
		printf("%s%d%d\n",pd[i].name,pd[i].price,pd[i].s);
	return 0;
}

结构体指针

创建指针 

struct Product
{ 
	char name[4];int price;int s;
}*p;

使用指针

法一:使用(*p)得到结构体

p = &pd1;//使得p指向pd1
printf("%s%d%d",(*p).name,(*p).price,(*p).s);
#include <stdio.h>
struct Product//创建结构体
{ 
	char name[4];int price;int s;
}pd1,*p;
int main()
{
	struct Product pd1={"zzq",300,2};//结构体初始化(结构体类型 + {})
	p = &pd1;//使得p指向pd1
	printf("%s%d%d",(*p).name,(*p).price,(*p).s);
	return 0;
}

 

法二:用"->"

#include <stdio.h>
struct Product//创建结构体
{ 
	char name[4];int price;int s;
}pd1,*p;
int main()
{
	struct Product pd1={"zzq",300,2};//结构体初始化(结构体类型 + {})
	p = &pd1;//使得p指向pd1
	printf("%s%d%d",p->name,p->price,p->s);
	return 0;
}

函数传递

传递结构体中某一值
int add(char q)

在main()中调用代码如下 

add(p -> name)
传递结构体
int add(struct Product a)

在main()中调用如下

add(pd1)

推荐一下我的上期的文章/抱c语言动态空间申请-CSDN博客 

推荐一下我的下期文章 /下方点击关注⭐

相关推荐

  1. C语言结构 网最简单易懂

    2024-02-16 15:02:01       46 阅读
  2. c语言-结构

    2024-02-16 15:02:01       65 阅读
  3. 结构(C语言)

    2024-02-16 15:02:01       55 阅读
  4. C语言结构

    2024-02-16 15:02:01       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-16 15:02:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-16 15:02:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-16 15:02:01       82 阅读
  4. Python语言-面向对象

    2024-02-16 15:02:01       91 阅读

热门阅读

  1. LeetCode 31天

    2024-02-16 15:02:01       56 阅读
  2. Mysql学习笔记

    2024-02-16 15:02:01       47 阅读
  3. Redis 的 SETNX

    2024-02-16 15:02:01       47 阅读
  4. PointMixer论文阅读笔记

    2024-02-16 15:02:01       60 阅读
  5. Rust基础拾遗--并发和异步编程

    2024-02-16 15:02:01       47 阅读
  6. Vue路由的传参

    2024-02-16 15:02:01       51 阅读
  7. 正则表达式

    2024-02-16 15:02:01       57 阅读
  8. 02.03_111期_linux_gdb使用笔记

    2024-02-16 15:02:01       48 阅读
  9. ROS学习笔记14:Action通信

    2024-02-16 15:02:01       53 阅读
  10. 2301: 不定方程解的个数

    2024-02-16 15:02:01       51 阅读
  11. Go教程-Go语言简介

    2024-02-16 15:02:01       61 阅读