定义两个结构体变量初始化student1和student2

ios开发中的C语言学习—— 结构体简介
来源:博客园
  在开发过程中,经常会需要处理一组不同类型的数据,比如学生的个人信息,由姓名、年龄、性别、身高等组成,因为这些数据是由不同数据类型组成的,因此不能用数组表示,对于不同数据类型的一组数据,可以采用结构体来进行存储。当然,对于面向对象的语言来说,最好是用类来表示,但是C语言是面向过程的,因此选择用结构体来表示。

struct 结构体名{

类型名 成员名1;

类型名 成员名2;

... ...

类型名 成员名n;

};

 
1.先定义结构体类型,再定义变量
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义学生信息的结构体
 */
struct student{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
};

int main(int argc, const char * argv[]) {
//声明结构变量
struct student student1;
struct student student2;
return 0;
}

 
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义学生信息的结构体,并声明两个学生结构变量student1和student12
 */
struct student{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
} student1, student2;

int main(int argc, const char * argv[]) {
return 0;
}

 
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
直接声明两个结构体变量student1和student2
 */
struct{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
} student1, student2;

int main(int argc, const char * argv[]) {
return 0;
} 

 
1结构体中可以包含,但是不允许对结构体本身递归使用。
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义日期结构体
 */
struct date{
unsigned int
unsigned int
unsigned int
};

/**
 *
定义学生结构体
 */
struct student{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
struct //出生日期 (date结构体)
};

int main(int argc, const char * argv[]) {
return 0;

 

&一& 结构体变量可以在声明的时候一次性给多个成员初始化,但是需要注意的是初始化的顺序必须和定义结构体成员的顺序一样,初始化成员的个数是可以少于总成员个数。
&二& 声明结构变量后,可以采用结构变量名.成员名来为其赋值或取值。
&三& 声明结构变量后,可以整体接收相同类型的其他结构变量的值。

代码

/
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义日期结构体
 */
struct date{
unsigned int
unsigned int
unsigned int
};

/**
 *
定义学生结构体
 */
struct student{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
struct //出生日期
};

int main(int argc, const char * argv[]) {
//&一& 一次性给多个成员赋值
struct date birth1 = {1992, 1, 1};
struct student student1 ={"jredu", 21, 'f', 180.0, birth1};
 
//&二&对单个成员赋值
student1.age = 20;
student1.height = 178.0;

//&三&相同类型的变量间可进行整体赋值
struct student student2 = student1;
return 0;
}

 
  结构体是我们自定义的一种数据类型,但是实际上和系统提供给我们的基本数据类型的使用是一样的,因此,除了可以用结构做变量,还可以用结构体做数组、指针、函数。
1结构数组
  用数组来存储一组结构体类型的变量,比如存放一组学生的结构数组。
  在使用结构数组的时候和上面讲的结构变量一样,同样可以通过三种方式来得到结构数组。
代码

/**
 *
&一&先定义结构体
 */
struct student{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
} ;

int main(int argc, const char * argv[]) {
//再声明结构数组
struct student stus[10];
return 0;
}

 
代码

/**
 *
&二&定义结构体同时直接声明结构数组
 */
struct student{
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
} stus[10];

 
代码

/**
 *
&三&直接声明结构数组
 */
struct {
char name[100]; //姓名
unsigned int //年龄
char //性别
double //身高
} stus[10];

 
2指向结构体的指针
要想使用指针来间接改变数据,必须用相同类型的指针去指向对象。结构体类型的变量或者数组在使用的时候就需要使用结构体类型的指针。
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义结构体
 */
struct student{
char * //姓名
unsigned int //年龄
} ;

int main(int argc, const char * argv[]) {
//声明结构变量
struct student student1 = {"jredu", 21};
//定义一个结构指针
struct student *ptr = &student1;
//访问结构成员,比如得到学生信息
//方式1:直接使用结构变量
printf("name = %s,age = %u\n",student1.name, student1.age);
//方式2:通过指针得到结构变量
printf("name = %s,age = %u\n", (*ptr).name, (*ptr).age);
//方式3:直接用指针
printf("name = %s,age = %u\n",ptr-&name, ptr-&age);
return 0;
}

 
3结构体做函数的参数
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义结构体
 */
struct student{
char * //姓名
unsigned int //年龄
} ;

void func1(struct student tempStu);
void func2(struct student *ptrStu);


int main(int argc, const char * argv[]) {
//声明结构变量
struct student student1 = {"jredu", 21};
struct student student2 = student1;
//调用参数为结构变量的函数
func1(student1);
printf("student1 name = %s\n",student1.name);
//调用参数为结构变量的函数
func2(&student2);
printf("student2 name = %s\n",student2.name);
return 0;
}

void func1(struct student tempStu){
tempStu.name = "apple";
}

void func2(struct student *ptrStu){
ptrStu-&name = "apple";
}

 
 typedef可以对数据类型进行重命名,因此在定义结构体的时候可以使用它来简化操作。
代码

//
//
main.c
//
结构体
//
//
Created by jerei on 15-12-27.
//
Copyright (c) 2015年 jerehedu. All rights reserved.
//

#include &stdio.h&

/**
 *
定义结构体
 */
typedef struct {
char * //姓名
unsigned int //年龄
} S

int main(int argc, const char * argv[]) {
//声明结构变量
Student student1 = {"jredu", 21};
return 0;
}

 
作者:杰瑞教育出处: 版权声明:本文版权归烟台科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

技术咨询:
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动定义两个结构体变量student1和student2-结构体类型名和结构体变量名必须一致吗?例如struct... _星空生活网
你现在浏览的是: & > &
定义两个结构体变量student1和student2
定义两个结构体变量student1和student210分
姓名,性别,其成员包括学号:输入学生的学号,总分,通过键盘为student1赋值,然后将student1的内容拷贝到student2,最后按格式输出。示例定义两个结构体变量student1和student2
struct student{
}student1,student2;
想要源程序吗
#include&iostream&
struct Date
//声明结构体类型为Date
struct student
//声明结构体类型为Student
char name[20];
//声明birthday为Date类型的成员
student1,student2={101,&Wang man&,'f',270};
//定义Student类型的变量student1,student2,并且对student2进行初始化
int main()
student1=student2;
//将student2的值赋给student1
cout&&student1.num&&endl
&&student1.name&&endl
&&student1.sex&&endl
&&student1.birthday.month&&&
&&&student1.birthday.day&&&
&&&student1.birthday.year&&endl
&&student1.score&&
自定义一个结构体类型的变量,其成员包括学号,姓名,年龄,性别,并将其类型声明为STUDENT,然后用... :
自定义一个结构体类型的变量,其成员包括学号,姓名,年龄,性别,并将其类型声明为STUDENT,然后用...
struct grade * //结构数组变量声明 怎么会多了个& * & 谢谢。 :
struct grade *//是声明一个指向grade数据类型的指针。指针的名字叫...
定义一个student结构类型,用来存储学生的学号等数据,并编写主函数测试结构变量在内存中占的字节数... :
你定义的student类型和 变量数组名 student[N],重名了,改一下数组名应该就行了,比如...
求C语言答案。定义一个学生结构体,包含学生姓名,学号,性别,年龄 :
需要存储什么信息,能不能把所要存储的信息清楚的说出来。这样在定义结构体的时候可以确定。 #inclu...
定义一个描述学生的结构体类型student,含有学号num、姓名name、性别sex、成绩score... :
定义 struct student { char num[n];//n,具体个数看你自己需求了 ch...
以下对结构变量stul中成员age的非法引用是 ( ) 。 struct student { int... :
B student是结构名,stu是一个student类型的变量,使用&.&引用;p是student...
struct Student* Create() 的* Create()是结构体变量定义成一个返回指... :
返回的是结构体的指针,不是函数指针 你的create函数内部给结构体指针申请了一个sizeof(.....
如何用自定义函数输出一个结构体变量的值 :
#include&iostream& struct alb...
用c语言写:定义一个学生结构体(包含姓名,学号,语文,数学,外语,总分)。定义一个学生结构体数组。 :
#include &stdio.h&struct student { char name[20]; ...
你可能感兴趣的内容?【图文】第9章使用结构体类型处理组合数据_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第9章使用结构体类型处理组合数据
大小:2.41MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 结构体变量初始化 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信