您的位置:首页 > 编程语言 > C语言/C++

013_C语言结构体和类型别名的应用

2014-07-25 11:23 183 查看

静态连接:编译时期

动态链接:加载到内存时

ldd a.out :查看a.out运行的环境变量

结构体:
struct stu_info{};

结构体与数组的区别:结构体中的元素数据类型可以不一样,结构体不占空间,但结构体里面的类容占空间

结构体数组:一个结构体变量中可以存放一组数据时定义数组

定义指针访问结构体成员:

#include <stdio.h>

struct date

{

int y,d,m;

};

struct stu_info

{

struct date birth; /*结构体嵌套*/

int num;

char name[20];

char iphone[12];

char sex;

char addr[60];

};

int main(void)

{

struct date *dt;

struct stu_info *p;

strut stu_info st;

={{2002,3,14},103,"nothing","12345678901",'M',"xiangyang"};

dt=p=&st; /*同一个地址不同的访问方式*/

printf("birth:%d-%d-%d\t\n",dt->y,p->birth.m,st.birth.d);

printf("num:%d\tname:%s\tiphone:%s\n",p->num,p->name,st.iphone);

printf("sex:%c\taddr:%s\n",st.sex,st.addr);

return 0;

}

定义类型别名:
例: typedef int s_t; s_t就为int类型的别名
typedef struct stu_info st_t; st_t为该结构体类型的别名

别名的由来:原来定义的类型变量名加上typedef后,变量名就为该类型的别名

返回值是指针或地址的函数:
int *a(int x,int y); 当调用他以后能得到一个纸箱整型数据的指针,int表示返回的指针是指向整型变量,例:

#include <stdio.h>

int *search(int (*arr)[3],int x); /*返回指针的函数声明*/

int main(void)

{

int scor[3][3]={{76,82,92},{77,73,80},{73,23,64}};

int *p;

int n=2,i=0;

printf("Please input anumber(0~2):");

scanf("%d",&n);

printf("The student score:\n");

p=search(scor,n); /*调用返回指针的函数,传递地址*/

for(i=0;i<3;i++)

{

printf("%d\t",*(p+i));

}

printf("\n");

return 0;

}

int *search(int (*arr)[3],int x) /*定义返回指针的函数*/

{

int *pt;

pt=*(arr+x);

return pt;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: