C语言高级代码

指针

  • C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,而指针便是保存这个地址的变量。也就是说:指针是一种保存变量地址的变量。
#include<stdio.h>
int main()
{
	int a=2,b=6,c=10,d=8,e=4;
	//取地址运算符
	int *pa=&a;
	int *pb=&b;
	int *pc=&c;
	int *pd=&d;
	int *pe=&e;
	printf("%#X %#X %#X %#X %#X\n",pa,pb,pc,pd,pe);


	//取值运算符
	printf("%d %d %d %d %d\n",*pa,*pb,*pc,*pd,*pe);

	return 0;
}
  • 指针访问数组
#include<stdio.h>
//下标法
/*
int main()
{
	int a[12]={2,3,6,5,8,0,9,4,1,7,11,20};
	for(int i=0;i<12;i++)
	{
	printf("%d\n",a[i]);
	}
	return 0;
}
*/

//本质偏移法
/*
int main()
{
	int a[12]={2,3,6,5,8,0,9,4,1,7,11,20};
	for(int i=0;i<12;i++)
	{
	printf("%d\n",*(a+i));
	}
	return 0;
}
*/

//指针法

int main()
{
	int a[12]={2,3,6,5,8,0,9,4,1,7,11,20};
	int *p=a;
	for(int i=0;i<12;i++)
		printf("%d\n",p[i]);


	for(int j=0;j<12;j++)
	{
		printf("%d\n",*(p+j));
	}

	for(int x=0;x<12;x++)
		printf("%d\n",*p++);

	return 0;
}


//二维数组
//下标法
/*
int main()
{
	int a[3][4]={2,5,4,8,9,1,3,7,6,10,12,21};
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("%d\t",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
*/
/*
int main()
{
	int a[3][4]={2,5,4,8,9,1,3,7,6,10,12,21};
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("%d\t",*(*(a+i)+j));
		}
		printf("\n");
	}
	return 0;
}
*/

结构体

  • 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
  • 结构体初始化
#include<stdio.h>
#include<string.h>
struct stu
{
	char *name; //char name[10];
	int num;
	char sex;
	float score;
};
int main()
{
	//方法一:定义时赋值
	//struct stu s={"fangwei",1001,'m',99};
	//方法二:定义后逐个赋值

	/*
	struct stu s;
	s.name="fangwei"; //strcpy(s.name,"fangwei");
	s.num=1001;
	s.sex='m';
	s.score=99;
	*/

	//指定赋值
	
	struct stu s={.name="fangwei",.num=1001,.sex='m',.score=99};

	printf("name:%s\n",s.name);
	printf("num:%d\n",s.num);
	printf("sex:%c\n",s.sex);
	printf("score:%.1f\n",s.score);


	return 0;
}
  • 结构体嵌套
#include<stdio.h>
int main()
{
	struct time
	{
		int hour;
		int min;
		int sec;
	};
	struct stu
	{
		char name[30];
		int num;
		float score;
		struct time TIME;
	};
	struct stu STU={"fangwei",1001,99,{13,23,44}};
	printf("STU.name=%s\n",STU.name);
	printf("num=%d\n",STU.num);
	printf("score=%f\n",STU.score);	
	printf("hour=%d\n",STU.TIME.hour);
	printf("min=%d\n",STU.TIME.min);
	printf("sec=%d\n",STU.TIME.sec);

	return 0;
}
  • 结构体数组遍历
#include<stdio.h>
int main()
{
	struct stu
	{
		char *name;	//char name[20];
		int num;
		char sex;
		float score;
	}s[4]={{"tangseng",1001,'m',99},{"wukong",1002,'m',88},{"bajie",1003,'m',44},{"sha",1004,'m',66}};
	/*ef struct stu
	{
		char *name;	//char name[20];
		int num;
		char sex;
		float score;
	}Stu;
	Stu s[4]={{"tangseng",1001,'m',99},{"wukong",1002,'m',88},{"bajie",1003,'m',44},{"sha",1004,'m',66}};
	*/
	for(int i=0;i<4;i++)
	{
		printf("num:  %d\n",s[i].num);
		printf("sex:  %c\n",s[i].sex);
		printf("score:%f\n",s[i].score);
		printf("\n");
	}
	
	return 0;
}

  • 利用结构体,实现投票功能
#include<stdio.h>
#include<string.h>
typedef struct pe
{
	char name[30];
	int votecount;
}candidate;
void vote(candidate * c,int n)
{
	for(int i=0;i<3;i++)
	{
		printf("name:%s votecount:%d\n",c[i].name,c[i].votecount);
	}
}
int main()
{
	candidate can[3]=
	{
		{"wang",0},
		{"fang",0},
		{"tao",0},
	};
	int count=0;
	char Name[1000];
	for(int j=0;j<10;j++)
	{
		
		printf("请输入你要投的人:");
		scanf("%s",Name);
		int flag=1;
		for(int i=0;i<3;i++)
		{
			if(strcmp(Name,can[i].name)==0)
			{	
				can[i].votecount++;
				flag=0;
			}
		}
		if(flag==1)
		{
			count++;
		}
		

	}

	vote(can,3);
	printf("弃权票:%d\n",count);
	int max=can[0].votecount;
	int idx;
	for(int i=1;i<3;i++)
	{
		if(max<can[i].votecount)
		{
			max=can[i].votecount;
			idx=i;
		}
	}
	printf("%s获胜!\n",can[idx].name);

	return 0;
}
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一门广泛应用于计算机编程的高级编程语言,它提供了许多强大的功能和特性,使编写高级代码变得更加简单和高效。 以下是一个C语言高级编程代码范例,展示了如何实现一个简单的图书馆管理系统: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> struct Book { char title[50]; char author[50]; int year; }; void addBook(struct Book *library, int *bookCount) { printf("请输入书名:"); scanf("%s", library[*bookCount].title); printf("请输入作者名:"); scanf("%s", library[*bookCount].author); printf("请输入出版年份:"); scanf("%d", &library[*bookCount].year); (*bookCount)++; printf("图书添加成功!\n"); } void displayLibrary(struct Book *library, int bookCount) { printf("图书馆中的图书有:\n"); for (int i = 0; i < bookCount; i++) { printf("书名:%s\n", library[i].title); printf("作者:%s\n", library[i].author); printf("出版年份:%d\n", library[i].year); printf("------------\n"); } } int main() { struct Book library[100]; int bookCount = 0; int choice; while (1) { printf("图书馆管理系统\n"); printf("1. 添加图书\n"); printf("2. 显示图书\n"); printf("3. 退出\n"); printf("请输入选项:"); scanf("%d", &choice); switch(choice) { case 1: addBook(library, &bookCount); break; case 2: displayLibrary(library, bookCount); break; case 3: exit(0); default: printf("无效的选项!\n"); } } return 0; } ``` 这段代码使用了结构体来表示图书的相关信息,实现了添加图书和显示图书的功能。在添加图书时,用户可以输入书名、作者和出版年份,系统会将图书添加到图书馆中。在显示图书时,系统会遍历图书馆中的所有图书并打印出它们的信息。 该代码范例展示了C语言中结构体、函数、循环、条件语句等的使用,以及如何进行用户输入和输出。通过这个简单的图书馆管理系统,我们可以看到C语言高级编程技巧和代码组织方式。当然,这只是一个简单的示例,实际应用中可能会更加复杂和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值