❶ c语言结构体是什么
C语言结构体(Struct)从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成的。你可以认为结构体是一种聚合类型。
在实际开发中,我们可以将一组类型不同的、但是用来描述同一件事物的变量放到结构体中。例如,在校学生有姓名、年龄、身高、成绩等属性,学了结构体后,我们就不需要再定义多个变量了,将它们都放到结构体中即可。
简介
关键字struct和结构体名组合成一种类型标识符,其地位如同通常的int、char等类型标识符,其用途就像 int 类型标识符标识整型变量一样可以用来定义结构体变量。
定义变量以后,该变量就可以像定义的其他变量一样使用了;成员又称为成员变量,它是结构体所包含的若干个基本的结构类型,必须用“{}”括起来,并且要以分号结束,每个成员应表明具体的数据类型。
❷ C语言结构体
问题在于如果你的结构的指针数真能达到极限,你怎么玩这个结构啊?
❸ C语言结构体的用法,
结构体的使用,首先要定义:
#include<stdio.h>
structstudent
{
charname[10];
intnum;
intage;
};//注意要分号
//然后就可以使用了:
voidmain()
{
structstudents;
structstudent*p=&s;//指针指向,可以不用指针
printf("inputname:");
gets(s.name);//若使用指针,则:gets(p->name);
printf("inputnum:");
scanf("%d",&s.num);//指针的写法:scanf("%d",&p->num);
printf("inputage:");
scanf("%d",&s.age);
//输出结果:
printf("name num age ");
printf("%s %d %d ");
}
结构体类似于数组,但结构体能定义不同的数据类型,这也是它的特别之处
❹ c语言结构体
#include "stdafx.h"
#include<iostream>
using namespace std;
struct Person
{
char Name[32];
char Sex;
unsigned int Age;
};
int _tmain(int argc, _TCHAR* argv[])
{
Person per1, per2;
cout << "输入per1姓名:"; cin >> per1.Name;
cout << "输入per1性别:"; cin >> per1.Sex;
cout << "输入per1年龄:"; cin >> per1.Age;
cout << endl;
cout << "输入per2姓名:"; cin >> per2.Name;
cout << "输入per2性别:"; cin >> per2.Sex;
cout << "输入per2年龄:"; cin >> per2.Age;
cout << endl;
if (per1.Age == per2.Age)
{
cout << per1.Name << "性别:" << per1.Sex << " 与 " << per2.Name << "性别:" << per2.Sex << "同龄" << endl;
}
else
{
if (per1.Age > per2.Age)
cout << per1.Name << "性别:" << per1.Sex << " 比 " << per2.Name << "性别:" << per2.Sex << "大 " << per1.Age - per2.Age << " 岁" << endl;
else
cout << per1.Name << "性别:" << per1.Sex << " 比 " << per2.Name << "性别:" << per2.Sex << "小 " << per2.Age - per1.Age << " 岁" << endl;
}
system("pause");
return 0;
}
❺ c语言结构体
data是你定义的一个结构类型(类似于int),DT是一个data的变量(类似于int i)。p是一个指针,用于指向一个data变量。
data的定义常见于单链表的节点结构,包含数据和指针两部分内容。数据当然是用来保存数据的,而指针用于把一个一个的节点串起来,在逻辑上形成一个链表
❻ 请问下C语言中的结构体有什么用
C语言中的结构体可以定义一些复杂数据类型,把一些有内在联系的不同变量放在一起封装成一个整体,这就是结构体。
例如:以学生为例,学生存在学号,姓名,性别,班级等。此时你可以顶一个结构体,将这些学生信息封装到一个结构体中。
code如下:
struct student{
int iID //学生的学号
char sStuName[10] //学生姓名
char sSex[10] //学生性别
....
}
(6)c语言结构体扩展阅读
C语言结构体在函数中的应用
typedefstructtagSTUDENT{
charname[20];
intage;
}STUDENT;
voidfun(STUDENTstu)
{
printf(“stu.name=%s,stu.age=%d/n”,stu.name,stu.age);
}
❼ c语言结构体,在线等
#include"stdio.h"
#include<string.h>
structcandidate
{
charname[15];
intcount;
}cand[5];
intmain()
{
inti,j;
charstr[15];
strcpy(cand[0].name,"Zhang");
strcpy(cand[1].name,"Li");
strcpy(cand[2].name,"Wang");
strcpy(cand[3].name,"Wrong");
for(i=0;i<10;i++)
{
printf("Inputvote%d:",i+1);
scanf("%s",str);
if(strcmp(str,cand[0].name)==0)
cand[0].count+=1;
else
{
if(strcmp(str,cand[1].name)==0)
cand[1].count+=1;
else
{
if(strcmp(str,cand[2].name)==0)
cand[2].count+=1;
else
cand[3].count+=1;
}
}
}
printf("Electionresults: ");
for(j=0;j<3;j++)
printf("%15s:%4d ",cand[j].name,cand[j].count);
printf("%sElection:%4d ",cand[3].name,cand[3].count);
}
❽ C语言结构体
结构体你就看成普通变量一样,
该在哪里就在哪里.
malloc分配的就在堆里(一般是指针),
函数里定义的就在栈里,
静态存储区里面放的是全局变量和static的.
auto是个很失败的关键字,你可以忽视.
int变量如果在main里的是不是要程序运行结束才释放内存,
因为要等mian函数退出内存才释放.
❾ C语言结构体。。
dt为结构体数组, 初始化后
dt[0].x=1 dt[0].y=2
dt[1].x=3 dt[1].y=4
p=dt, 也就是指向dt[0]
输出++p->y 先自加, ++归属于y,也就是++(p->y)
所以输出的是dt[0].y自加后的值,也就是3
下一句类似, 输出再次自加的结果是4.
选C