C语言变量、数组、结构体、共用体说明

1.C语言变量的命名规则
1)由字母、数字、下划线组成
2)变量名称不能和关键字相同
3)第一个字符必须是字母或下划线
2.C语言基本变量类型
char 						//字符类型
unsigned char				//无符号字符类型
int  						//整型
unsigned int 				//无符号整型
unsigned short int 			//无符号短整型
short int 					//短整型
long  int 					//长整型
unsigned long int 			//无符号长整型
long long int				//64位机中有长长整型
float  						//单精度浮点型
double 						//双精度浮点型
3.C语言其它数据类型
数组
结构体
指针
枚举
共用体
/*一维数组的定义*/
int arr[10];//在内存中开辟10个int这么大的内存空间,给这个空间起个名叫做arr
/*二维数组的定义*/
int arr[i][j];//在内存中开辟i×j个int这么大的内存空间,给这个空间起个名叫做arr
/*结构体的定义*/
struct book	  //定义一个结构体用于存放一本书的基本信息(书名、价格等)
{
	char  name[10];
	float price;
};			  //这里的分号不要忘记
/*枚举的定义*/
enum   days
{
	sunday,
	monday,
	tuesday
};
/*共用体的定义*/
union  book
{
	char name[10];
	float price;
};
4.举例说明用法
/*一维数组的定义及初始化及用法(用的笨方法)*/
/*以下程序输出一维数组的值*/
#include<stdio.h>
int main(void)
{
	int arr[5]={1,2,3,4,5};//定义并直接初始化
	printf("%d\n",arr[0]);
	printf("%d\n",arr[1]);
	printf("%d\n",arr[2]);
	printf("%d\n",arr[3]);
	printf("%d\n",arr[4]);	
	return 0;
}
/*二维数组的定义及初始化及用法(用的笨方法)*/
/*以下程序输出二维数组的值*/
#include<stdio.h>
int main(void)
{
	int arr[2][3]={{1,2,3},{5,6,7}};//定义并直接初始化,有几行就有几个{},{}内是列数
	printf("%d\n",a[0][0]);
	printf("%d\n",a[0][1]);
	printf("%d\n",a[0][2]);
	printf("%d\n",a[1][0]);
	printf("%d\n",a[1][1]);
	printf("%d\n",a[1][2]);
	return 0;
}
/*结构体的定义及用法*/
#include <stdio.h>
#include <string.h>
int main(void)
{
struct book
{
	char name[10];//用于存放书的名称
	float price; //用于存放数的价格
};
	struct book book1,book2;//定义两个结构体类型存放两本书的信息
	strcpy(book1.name,"西游记");
	book1.price=12.23;
	strcpy(book2.name,"红楼梦");
	book2.price=23.4;
	printf("图书名称\t\t图书价格\n");
	printf("%s\t%f\n",book1.name,book1.price);
	printf("%s\t%f\n",book2.name,book2.price);
	return 0;
}
/*枚举的定义及用法*/
#include<stdio.h>
int main(void)
{
	enum days
	{
	 	sunday,	//这里用逗号!
	 	monday,
	 	tuesday
	};
	enum days day1,day1,day3;
	day1=sunday;
	day2=monday;
	day3=tuesday;
	printf("%d\n",day1);
	printf("%d\n",day2);
	printf("%d\n",day3);
	return 0;
}
/*指针的定义及用法*/
/*用指针输出一维数组*/
#include <stdio.h>
int main(void)
{
	int arr[5]={1,2,3,4,5};
	int *p;//因为定义数组是int型的,所以定义的指针类型也是int型的
	p=arr;//数组的名称就是数组的首地址
	int i;//定义循环变量
	for(i=0;i<5;i++)
	{
		printf("%d\n",*p);
		p++;
 	}
	return 0;
}
/*用指针输出二维数组*/
#include<stdio.h>
int main(void)
{
	int arr[2][3]={{1,2,3},{4,5,6}};
	int *p;
	int i,j;
	for(i=0;i<2;i++)
	{
		p=arr[i];
		for(j=0;j<3;j++)
		{
			printf("%d\t",*(p+j));
		}
		printf("\n");
	}
	return 0;
}
/*共用体的定义和用法*/
/*共用体又叫联合体,意思就是各个成员占用同一块内存,当改变一个的值时,其它成员的值可能会变
(如果没有变化那么就是大圈套小圈(比如说int型占4字节char型占1个字节两个变量占用一块内存,
那么char型是包含在int型里的))*/
#include<stdio.h>
int main(void)
{
	union  num
	{
		char a; //一个字节
		int b;	//四个字节
	};			//记住共用体所占的大小是成员变量中最大的那个成员变量的大小
	union num  c;//定义一个共用体变量c
	c.b=0x1234;  
	printf("x%\n",c.a);//如果有数的话就说明,两个成员变量公用一块内存
	return 0;
}
/*结构体与结构体的嵌套*/
/*1.结构体中嵌套一个结构体*/
#include<stdio.h>
int main(void)
{
	struct num1
	{
		int a;
		int b;
	struct num2
	{
		int c;
		int d;
	}a2;
	}a1;
	a1.a2.c=1;
	a1.a2.d=2;
	a1.b=3;
	a1.a=4;
	printf("%d\n",a1.a2.c);
	printf("%d\n",a1.a2.d);
	printf("%d\n",a1.b);
	printf("%d\n",a1.a);
	return 0;
}
/*一个结构体中嵌套两层结构体*/
#include<stdio.h>
int main(void)
{
	struct num1
	{
		int a;
		int b;
	struct num2
	{
		int c;
		int d;
	struct num3
	{
		int e;
		int f;
	}a3;
	}a2;
	}a1;
	a1.a2.a3.f=1;
	a1.a2.a3.e=2;
	a1.a2.c=3;
	a1.a2.d=4;
	a1.b=5;
	a1.a=6;
	printf("%d\n",a1.a2.a3.f);
	printf("%d\n",a1.a2.a3.e);
	printf("%d\n",a1.a2.d);
	printf("%d\n",a1.a2.c);
	printf("%d\n",a1.b);
	printf("%d\n",a1.a);
	return 0;
}
/*结构体中嵌套共用体*/
#include <stdio.h>
int main(void)
{
	struct num1
	{
		int a;
		int b;
	union num2
	{
	/*共用体成员变量c、d共用同一块内存*/
		int c;
		int d;
	}a2;
	}a1;
	a1.a=1;
	a1.b=2;
	a1.a2.c=3;
	printf("%d\n",a1.a);
	printf("%d\n",a1.b);
	printf("%d\n",a1.a2.d);
	return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值