码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中的结构体

时间:2017-10-04 17:30:44      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:typedef   定义   机械   自我   没有   计算   内存   结合   数组   

宏在进行编译的阶段会进行替换,宏替换或者是宏展开。带参数的宏,机械的进行展开就可以了。

多维数组在做参数的时候会退化成为一个指针。

指针数组的自我结束能力,指的是最后一个元素为0,用来表示指针已经达到的结尾。

在C语言中‘\0’和0和NULL是同一回事。只是表达的环境不同而已。

知道在什么框架下干的活。

结构体类型定义和结构体变量的定义。

如何定义一个结构体类型。

struct关键字

struct Teacher{

    char name[64];

    int age;

    int id;

};

定义变量的方式:

struct Teacher tea;

这里定义一个数据类型,数据类型是固定大小的内存块的别名。

这里相当于是定义了一个数据类型,然后用这个数据类型来分配变量。

类型的重定义用typedef,结构体可以用typedef来进行重定义。

typedef struct Teacher{

    char name[64];

    int age;

    int id;

} Teacher;

定义变量的方式:

Teacher tea;

用结构体类型定义变量的方式有三种:

定义类型的同时定义变量

定义匿名类型的时候定义变量

用结构体类型来定义变量

初始结构体变量的三种方法:

用结构体定义变量的时候初始化结构体变量

在定义匿名结构体定义结构体变量的时候初始化结构体变量

结构体变量的引用

.操作符是做什么的?有没有操作内存?

.是寻址操作,是计算变量相对于结构体变量的偏移量,没有操作内存,在赋值的时候才操作内存。

通过指针的方式操作内存空间,->

->也是在寻址,是计算变量相对于结构体变量的偏移,计算在CPU中,没有操作内存。

结构体做函数参数的行为。结构体赋值=操作,编译器提供的行为?

编译器提供了简单的=赋值操作。

结构体元素做函数参数,结构体指针元素做函数参数的区别

用元素和用指针是截然不同的。结构体变量做函数参数和结构体指针做函数参数。

结构体做函数参数的基本操作。

数组做函数参数会退化成为一个指针,因此需要将数组的长度给传递过去。

结构体可以和参数结合起来,方便的分配内存空间。

在进行函数调用的时候,如果是在主调函数中分配内存,就使用一级指针,如果在被调用函数中分配内存,就使用二级指针。

C语言中的结构体

标签:typedef   定义   机械   自我   没有   计算   内存   结合   数组   

原文地址:http://www.cnblogs.com/andyniu/p/7625853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!