C语言中,什么是结构体类型的数据?数据总共分几个类型?谢谢

 我来答
裴晶宇
推荐于2018-04-04 · TA获得超过772个赞
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:84.4万
展开全部
结构体类型就是以struct关键字定义的数据类型呗。
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。是一种聚合类型,里面可以包含多种数据类型,甚至可以结构体里嵌套结构体。相信我,等你深入理解了C言语之后,结构体在C语言里是一个神器。
其定义举个简单的例子:
struct point
{
//包含4个变量成员
int x;
int y;
char z;
int A[10];
};

C语言有五种基本数据类型:字符(char)、整型(int)、单精度实型(float)、双精度实型(double)和空类型(void)。
C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构体(struct)、共用体(联合)、位域和枚举。

再详细的,你还是去好好看书,好好练习,不是一两句就能让你明白的。
百度网友eb3b38b
2013-01-26 · 超过15用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:33.4万
展开全部
结构体是C语言给出的一种聚合类型
其中可以包含任何已定义的数据类型(包括自己定义的类型,甚至包括结构体),也可以包含函数
例如如下的结构体
typedef struct
{
int a[7][9];

bool empty(){return (a[1][1]==0&&a[2][1]==0&&a[3][1]==0&&a[4][1]==0&&a[5][1]==0);}

void output()
{
int i,j;
for (i=7;i>0;i--,cout<<endl)
for (j=1;j<=5;cout<<a[j][i]<<' ',j++);
cout<<endl;
}

void down(int x,int y)
{
int i=y-1;
while (i>0&&a[x][i]==0) i--;
i++;
if (i<y)
{
a[x][i]=a[x][y];a[x][y]=0;
for (int j=1;a[x][y+j]>0;j++)//above a[i][j]
{
a[x][i+j]=a[x][y+j];a[x][y+j]=0;
}
}
}
void down_0(int x,int y)
{
int i=y-1;
while (i>0&&a[x][i]==0) i--;
i++;
if (i<y) {a[x][i]=a[x][y];a[x][y]=0;}
}

void check()
{
int i,j,k;
bool v[7][9];

do
{
memset(v,0,sizeof(v));
//output();

for (i=1;i<=5;i++)
for (j=1;j<=5;j++)
{
if (a[i][j]>0&&a[i][j]==a[i][j+1]&&a[i][j]==a[i][j+2])
{
v[i][j]=v[i][j+1]=v[i][j+2]=1;
//k=j+2;
//while (k<=7&&a[i][k]==a[i][j]) k++,v[i][k]=1;
//j=k-2;
}
}
for (i=1;i<=7;i++)
for (j=1;j<=3;j++)
{
if (a[j][i]>0&&a[j][i]==a[j+1][i]&&a[j][i]==a[j+2][i])
{
v[j][i]=v[j+1][i]=v[j+2][i]=1;
//k=j+2;
//while (k<=5&&a[k][i]==a[j][i]) k++,v[k][i]=1;
//j=k-2;
}
}
k=0;
for (i=1;i<=5;i++)
for (j=1;j<=7;j++)
{
if (v[i][j]==1) a[i][j]=0,k=1;
else down_0(i,j);
}
//for (i=1;i<=5;i++)
// for (j=1;j<=7;j++)
// if (v[i][j]==0) down_0(i,j);

//output();
}while(k==1);
}

void change_left(int x,int y)
{
int t;
t=a[x][y];a[x][y]=a[x-1][y];a[x-1][y]=t;
if (a[x][y]>0) down(x,y);
if (a[x][y+1]>0) down(x,y+1);
if (a[x-1][y]>0) down(x-1,y);
check();
}
void change_right(int x,int y)
{
int t;
t=a[x][y];a[x][y]=a[x+1][y];a[x+1][y]=t;
if (a[x][y]>0) down(x,y);
if (a[x][y+1]>0) down(x,y+1);
if (a[x+1][y]>0) down(x+1,y);
check();
}
}map;
假如有 map m;
可以调用其中变量如 m.a[i][j];
可以使用其中函数如 m.check();
不难看出,结构体可以给我们带来很大的便利
当对C了解深入以后就会发现越来越喜欢它了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万能王敬之
2018-04-03
知道答主
回答量:11
采纳率:0%
帮助的人:6210
展开全部
结构体里不能有bit数据类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式