概述
//
// main.c
// StructDemo2
//
// Created by 千 on 16/7/20.
// Copyright © 2016年 kodulf. All rights reserved.
//
#include //之前讲的是结构变量,现在讲结构标示
//2.结构类型-结构标示
/*
就有点像是java中的class
public Class Person{
int pid;
String name;
int age;
}
*/
struct Person{
int pid;
char name[10];
int age;
}p2,p3={1,"hello",3};//注意这了是有;的符号的,而且可以在这里进行初始化和申明
//结构类型-标记
struct NewPerson{
int pid;
char name[10];
int age;
};
//结构类型作为参数
void printPerson(struct NewPerson p){
printf("pid=%dn",p.pid);
printf("name=%sn",p.name);
printf("age=%dn",p.age);
printf("+++++++++++n");
}
//结构类型作为返回值
struct NewPerson getPerson(){
struct NewPerson p2;
p2.pid=0;
strcpy(p2.name,"p2 name");
p2.age=90;
return p2;
};
int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!n");
struct Person p1;//名称为person的结构体类型
p1.pid = 1;
strcpy(p1.name,"hello");//注意这个字符串的肤质不能使用p1.name ="hello";
p1.age=29;
printf("pid=%d,name=%s,age=%dn",p1.pid,p1.name,p1.age);
//3:改进,成为结构类型定义,通过类型定义的方式,实现和java非常类似的
typedef int BOOL; //这样bool 就代表int类型了
typedef struct{
int pid;
char name[10];
int age;
} Customer;
Customer c1;
c1.pid = 9;
strcpy(c1.name,"customer");
c1.age=9;
printf("pid=%d,name=%s,age=%dn",c1.pid,c1.name,c1.age);
//测试结构类型作为参数和返回值
struct NewPerson np1;
np1.pid = 90;
strcpy(np1.name, "new person");
np1.age = 29;
printf("开始输出new personn");
printPerson(np1);
//结构体,
struct NewPerson np2 = getPerson();//结构体是可以直接等号来复制的
printPerson(np2);
//4.结构体和数组
struct MyPoint{
int x;
int y;
};//注意了一定不能少了这个分号
struct MyCircle{
struct MyPoint center;//圆心
double r;//半径
};//注意了一定不能少了这个分号
struct MyPoint mp ;
mp.x=10;
mp.y=10;
struct MyCircle circle;
circle.center=mp;
circle.r=1.2f;
printf("圆心的坐标是x=%d,y=%d,r=%fn",circle.center.x,circle.center.y,circle.r);
//结构类型和数组
//首先结构体里面可以有数组,
struct StructDemo{
int pid;
char name[10];
int age;
};
//数组的类型也可以是结构体类型的
struct NewPerson persons[4];
struct NewPerson person1,person2,person3,person4;
person1.age=1;
strcpy(person1.name, "person1");
person1.pid = 1;
persons[0]=person1;
person2.age=2;
strcpy(person2.name, "person2");
person2.pid = 2;
persons[1]=person2;
person3.age=3;
strcpy(person3.name, "person3");
person3.pid = 3;
persons[2]=person3;
person4.age=4;
strcpy(person4.name, "person4");
person4.pid = 4;
persons[3]=person4;
for(int i=0;i<4;i++){
printPerson(persons[i]);
}
return 0;
}
最后
以上就是犹豫口红为你收集整理的c语言中结构类型与结构变量,c语言中 结构变量,结构类型标示,结构类型定义的区别...的全部内容,希望文章能够帮你解决c语言中结构类型与结构变量,c语言中 结构变量,结构类型标示,结构类型定义的区别...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复