收藏此站 联系我们 网站
当前位置:首页» 网络推广 » 【建站服务】张掖淘宝装修/张掖京东店铺设计/张掖拼多多网店装修公司/张掖企业网店开通申请-网店装修设计-域名申请

【建站服务】张掖淘宝装修/张掖京东店铺设计/张掖拼多多网店装修公司/张掖企业网店开通申请-网店装修设计-域名申请

作者: 风兰 . 阅读量: 5 . 发表时间:2022-09-21 03:13:30

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


张掖淘宝装修/张掖京东店铺设计/张掖拼多多网店装修公司/张掖企业网店开通申请-网店装修设计

网站建设.png

                {10102, "Zhang Fun", 'M', 19},                         {10103, "Wang Min", 'F', 20}}; int main(){    struct student *p;    printf("No.    name        sex        agen");    for(p=stu; p<stu+3;p++)        printf("%5d %-20s %2c %4dn", p->num, p->name, p->sex, p->age);    system("pause");}

运行结果如下:

No.    name        sex        age10101 Li Lin                M       1810102 Zhang Fun        M       1910103 Wang Min          F        20

注意以下两点:

1)如果 p 的初值为 stu,即指向第一个元素,则 p + 1 后指向下一个元素的起始地址。例如:

(++p) -> num 先使 p 自加 1 ,然后得到它指向的元素中的 num 成员的值(即10102)。

(p++) ->num 先得到 p->num 的值(即10101),然后使 p 自加 1 ,指向 stu[1]。

注意以上二者的不同。

(2)程序已定义了指针 p 为指向 struct student 类型数据的变量,它只能指向一个 struct student 型的数据(p 的值是 stu 数组的一个元素的起始地址),而不能指向 stu 数组元素中的某一成员,(即 p 的地址不能是成员地址)。例如,下面是不对的:

p = &stu[1].name

编译时将出错。千万不要认为反正 p 是存放地址的,可以将任何地址赋给它。如果地址类型不相同,可以用强制类型转换。例如:

p = (struct student *)&stu[1].name;

此时,在 p 中存放 stu[1] 元素的 name 成员的起始地址。

6.3 用结构体变量和指向结构体的指针作函数参数

将一个结构体变量的值传递给另一个函数,有3个方法:

  • (1)用结构体变量的成员作参数,例如:用 stu[1].num 或 stu[2].name 作函数实参,将实参值传给形参。用法和用普通变量作实参是一样的,属于 值传递 方式。应当注意实参与形参的类型保持一致。

  • (2)用结构体变量作参数。老版本的C系统不允许用结构体变量作实参,ANSI C取消了这一限制。但是用结构体变量作实参时,采取的是 值传递 的方式,将结构体变量所占的内存单元全部顺序传递给形参。形参也必须是同类型的结构体变量。在函数调用期间形参也要占用内存单元。这种传递方式在空间和时间上开销较大,如果结构体的规模很大时,开销是很可观的,此外由于采用值传递方式,如果在执行被调用函数期间改变了形参(也是结构体变量)的值,该值不能返回主调函数,这往往造成使用上的不便。因此一般较少用这种方法。

  • (3)用指向结构体变量(或数组)的指针作实参,将结构体


向结构体变量(或数组)的指针作实参,将结构体变量(或数组)的地址传给形参。

用结构体变量作函数参数。


实例

#include <stdio.h>

#define FORMAT "%d %s %f %f %f "

 

struct student

{

    int num;

    char name[20];

    float score[3];

};

 

void print(struct student stu)

{

    printf(FORMAT, stu.num, stu.score[0], stu.score[1], stu.score[2]);

    printf(" ");

}

 

void main()

{

    struct student stu;

    stu.num = 12345;

    strcpy(stu.name, "Li Li");

    stu.score[0] = 67.5;

    stu.score[1] = 89;

    stu.score[2] = 78.6;

    printf(stu);

}

将上面改用指向结构体变量的指针作实参。


实例

#include <stdio.h>

#define FORMAT "%d %s %f %f %f "

 

struct student

{

    int num;

    char name[20];

    float score[3];

}stu = {12345, "Li Li", 67.5, 89, 78.6};

 

void print(struct student *p)

{

    printf(FORMAT, p->num, p->name, p->score[0], p->score[1]



张掖淘宝装修/张掖京东店铺设计/张掖拼多多网店装修公司/张掖企业网店开通申请-网店装修设计


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务