11.30简单知识,结构体

/*定义结构体*/
struct book{
    char title[20];
    int a;
};
//以上的只是定义一个标记为book的结构体模板,编译器并不分配空间
struct book library;//创建结构变量,分配空间
//其中struct是关键字,book是标记,{}里面的是成员,library是标记为book的结构体的结构变量。

struct{
    char title[20];
    int a;
}library;
//这种办法也是建立结构体的办法,在这个办法里,标记可以取消,但是如果想要多次使用,还是要带上标记。

/*初始化结构体*/
struct book library = {
    "a book",
    10
};//这种初始化方法,逗号很重要,编译器认逗号,按顺序,最后一个可以不用加逗号。

/*结构数组*/
struct book library[100];//创建结构数组。
library[0].title//使用结构数组里的数据。

/*嵌套结构*/
struct names{
    char first[20];
    char last[20];    
};

struct guy{
    struct names handle;//这个行是创建嵌套结构
    char favfood[20];
    char job[20];
    folat income;
};

struct guy fellow = {
    {"Ewen","Villard"}//初始化嵌套结构的数据,用或括号
    …………
};
fellow.names.first//访问嵌套结构中的数据

/*结构指针*/
struct guy *p; //创建一个book类型的结构体指针。
p = &fellow;  //p指向变量library。要有取址符。结构变量名不是地址,所以需要取地址符。
p->job;  //通过指针的方式访问内容。1
(*p).job; //通过指针的方式访问内容。2
p->handle.first  //访问嵌套结构体内的数据。


/*像函数传递结构信息*/
double s(double x,double y)//定义一个函数
s(book.value,book.savefund)//向函数传递结构成员。传递结构信息1

double s(const struct funds *money)//定义一个调用结构体指针的函数
s(&结构体变量名)//调用函数。传递结构信息2
(*money).结构体内的数据名    //因为money是指针,所以不能指点.使用,或者也可以用money->这种方法       这种是对结构体原始数据进行操作

double s(struct funds money)//定义一个调用结构体指针的函数
s(结构体变量名)//调用函数。传递结构信息3
money.结构体内的数据名       //因为传递的是结构体,所以可以直接.使用。   这种是对结构体的副本进行操作,并不影响原始数据。

strlen(字符串或者数组或者变量)   //返回这个字符串的长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值