栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

结构体是个好东西

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

结构体是个好东西

 

结构体

结构体指的是一种数据结构是C语言中复合数据类型的一类。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型,成员一般用名字访问。

定义结构体变量

1.

struct  结构体名

{        类型标识符        成员名;

         类型标识符        成员名;

                ......

  };

struct   结构体名    变量名表列;

 

2.

struct  结构体名

{        类型标识符        成员名;

         类型标识符        成员名;

                ......

  }变量名表列;

 

3.

struct 

{        类型标识符        成员名;

         类型标识符        成员名;

                ......

  }变量名表列;

 结构体变量初始化

实例

 

 

 所占内存

结构体类型不占用内存,但结构体变量占用内存。

使用sizeof运算,可以求出运算对象所占的内存空间的字节数目。

sizeof(变量或类型说明符)

结构体指针

struct stuinf
{    int stid;    
    int score;    
}stu [ STNUM ];      
struct  stuinf * p[STNUM];  定义结构体指针

for ( i=0; i<=STNUM-1; i++ ) 

p[i]=&stu[i]  让他指向结构体变量;

(*p[i]).stid 等同于 p[i]->stid 等同于 stu(i).stid

 

结构体排序

定义结构体,再定义一个结构体指针指向这个结构体,通过指针取结构体内部一变量进行排序,改变指针指向,最后按序输出指针所指内容。

#define STNUM   10 
struct stuinf
{	int stid;	
	int score;	
}stu [ STNUM ]; 	 
struct  stuinf * p[STNUM];
int main ( )
{	
	struct stuinf  * ptemp, * p[STNUM];
	int i,j,k;
	for ( i=0; i<=STNUM-1; i++ ) 
	{  
	 	scanf ("%d%d", &stu[i].stid,&stu[i].score);
		p[i]=&stu[i];	      
	}
	
	for ( i =0; i <= STNUM-2; i++ ) 
	{  
		k = i;
		for ( j = i; j <= STNUM-1; j++ )
			if ( (*p[k]).score < (*p[j]).score )   //按照指针p所指的结构体中的score进行排序 
				k=j;
	    if ( k != i )
	 	{  ptemp = p[i];  p[i]=p[k];  p[k]=ptemp; }     //p的指向变了,但是所指向的结构体变量内部没变 
	}
	
	for (i=0; i<=STNUM-1; i++) 
		printf("%d,%dn", (*p[i]).stid, p[i]->score);
}

就酱,啾咪~

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号