我是靠谱客的博主 粗暴口红,最近开发中收集的这篇文章主要介绍c语言_结构体一 指向结构体变量的指针二 指向结构体数组的指针三 用结构体变量和结构体变量的指针作函数参数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

指向结构体变量的指针

#include<stdio.h>
#include<string.h>


void main()
{	
	struct library {
		int number;	//藏书编号 
		char title[20];		//书名 
		char name[20];		//作者 
		int price;		//书本价格 
		char flag;		//标记是否借出 
	};
	
	struct library book1;
	struct library *p;
	p = &book1; //p指向book

	strcpy(book1.title,"lww"); 
	strcpy(book1.name,"clw"); 
	book1.number = 100;
	book1.price = 100;
	book1.flag = 'Y';
	printf("藏书编号:%dn书名:%sn作者:%sn书本价格:%dn是否借出:%cn"
	,(*p).number,(*p).title,(*p).name,(*p).price,(*p).flag);
	
	
}

注意*p两侧的括号不可省,因为成员运算符 . 优先级高于 * ,*p.name 等价 *(p.name)

为使用方便和直观,(*p).number也可以写作  p->number  , ->为指向运算符

总之,若p指向一个结构体变量book1,以下三种用法等价

book1.name    ==     (*p).name     ==      p->name

二 指向结构体数组的指针

#include<stdio.h>
#include<string.h>

void main()
{		
	struct library {
		int number;	//藏书编号 
		char title[20];		//书名 
		char name[20];		//作者 
		int price;		//书本价格 
		char flag;		//标记是否借出 
	}book[3]={{1,"ccc","zzz",100,'Y'},{2,"lll","xxx",101,'N'},{3,"www","vvv",102,'Y'}};

	struct library *p;
	for(p=book;p<book+3;p++){
		printf("藏书编号:%dn书名:%sn作者:%sn书本价格:%dn是否借出:%2cn"
	,p->number,p->title,p->name,p->price,p->flag);
	}
}

(++p) ->number 先使p自然加1,然后得到p指向的元素的中number的值

(p++)->number  先求得 p->num 得值,然后再使p自然加1,指向book[1]

三 用结构体变量和结构体变量的指针作函数参数

//输出价格最高的书 

#include<stdio.h>
# define N 3 

	struct library {
		int number;	//藏书编号 
		char title[20];		//书名 
		char name[20];		//作者 
		int price;		//书本价格 
		char flag;		//标记是否借出 
	};

void input(struct library book[])  //定义input函数,输入数据 
{
	int i;
	for(i=0;i<N;i++){
		scanf("%d %s %s %d %c",&book[i].number,book[i].title
		,book[i].name,&book[i].price,&book[i].flag);
	} 
} 

struct library max(struct library book[]){
	int i,m=0;
	for(i=0;i<N;i++){
		if(book[i].price>book[m].price)
		m = i;
	}
	return book[m];
}

void print(struct library bok)
{
	printf("藏书编号:%dn书名:%sn作者:%sn书本价格:%dn是否借出:%2cn"
	,bok.number,bok.title,bok.name,bok.price,bok.flag);
}

void main()
{		

	struct library book[N],*p = book;
	input(p);
	print(max(p));
		
}

 

最后

以上就是粗暴口红为你收集整理的c语言_结构体一 指向结构体变量的指针二 指向结构体数组的指针三 用结构体变量和结构体变量的指针作函数参数的全部内容,希望文章能够帮你解决c语言_结构体一 指向结构体变量的指针二 指向结构体数组的指针三 用结构体变量和结构体变量的指针作函数参数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部