Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:关于结构体的第二次课件

1楼
admin 发表于:2008/12/4 6:29:30

1 最为简单的使用方法
#include <string.h>
#include <stdio.h>

struct student{
        long num;
        char name[20];
        char sex;
        float score;
};

void main()
{
        struct student stu1={1001,"黎明",'M',78.5};
        struct student *p;
        p=&stu1;
        printf("学号是%d,姓名是%s,性别是%c,分数是%f\n",p->num,p->name,p->sex,p->score);
}

数组指针的回顾
#include <string.h>
#include <stdio.h>

void main()
{
        int i=1;
        int *p1=&i;
        //printf("i=%d\n",*p1);

        int array[3]={100,200,300};
        int *p2=array;
        //printf("array[1]=%d\n",*(p2+1));
        //printf("array[1]=%d\n",p2[1]);
        //printf("array[1]=%d\n",*(array+1));  
}

指向结构体数组的指针
#include <string.h>
#include <stdio.h>

struct student{
        long num;
        char name[20];
        char sex;
        float score;
};

void main()
{
        struct student stus[]={{1001,"黎明",'M',78.5},{1002,"胡哥",'M',90},{1003,"白雪",'F',81.5}};
        struct student * p1=stus;
        //printf("stus[1]的姓名是%s\n",stus[1].name);
        //printf("stus[1]的姓名是%s\n",(*(p1+1)).name);
        //printf("stus[1]的姓名是%s\n",p1[1].name);
        //printf("stus[1]的姓名是%s\n",stus[1].name);
}

2 使用结构体参数的函数
回顾函数参数的使用
#include <string.h>
#include <stdio.h>

void func(int);

void main()
{
        int i=0;
        func(i);
        printf("i=%d\n",i);
}

void func(int i)
{
        i=1;
}

回顾指针函数参数的使用
#include <string.h>
#include <stdio.h>

void func(int *);

void main()
{
        int i=0;
        int *p=&i;
        func(p);
        printf("i=%d\n",i);
}

void func(int * p)
{
        *p=1;
}

数组参数类似于指针参数
#include <string.h>
#include <stdio.h>

void func(int *);

void main()
{
        int i[]={0,0,0};
        int *p=i;
        func(p);
        printf("i[0]=%d\n",i[0]);
}

void func(int * p)
{
        *p=1;
        //p[0]=1
}

使用一般的结构体变量参数
#include <string.h>
#include <stdio.h>

struct student{
        long num;
        char name[20];
        char sex;
        float score;
};

void func(struct student);

void main()
{
        struct student stu={1001,"黎明",'M',78.5};
        func(stu);
        printf("学号是%d,姓名是%s\n",stu.num,stu.name);
}

void func(struct student stu)
{
        strcpy(stu.name,"张三");
        //printf("学号是%d,姓名是%s\n",stu.num,stu.name);
}

使用结构体指针参数
#include <string.h>
#include <stdio.h>

struct student{
        long num;
        char name[20];
        char sex;
        float score;
};

void func(struct student *);

void main()
{
        struct student stu={1001,"黎明",'M',78.5};
        func(&stu);
        printf("学号是%d,姓名是%s\n",stu.num,stu.name);
}

void func(struct student *stu)
{
        strcpy(stu->name,"张三");
        //printf("学号是%d,姓名是%s\n",stu->num,stu->name);
}

请问结果是什么?
#include <string.h>
#include <stdio.h>

struct student{
        long num;
        char name[20];
        char sex;
        float score;
};

void func(struct student *);

void main()
{
        struct student stu={1001,"黎明",'M',78.5};
        func(&stu);
        printf("学号是%d,姓名是%s\n",stu.num,stu.name);
}

void func(struct student *stu)
{
        struct student newStu={1002,"胡哥",'M',90};
        stu=&newStu;
        strcpy(stu->name,"张三");
}


 

[此贴子已经被作者于2010-12-13 20:05:56编辑过]
共1 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.