本帖最后由 鱼塘是我的 于 2019-5-29 23:57 编辑
第九天课程作业
9.1 struct 结构的使用 与类的异同 内存分配 与 内存对齐
一、类 vs 结构
类和结构有以下几个基本的不同点:
类是引用类型,结构是值类型。
结构不支持继承。
结构不能声明默认的构造函数。
二、类VS结构详细版随堂笔记
结构中可以包含:方法、属性、索引器、事件
索引器不需要赋值也能使用
编译自动会给我们加上,结构的构造函数,而且自定义了构造函数,空的构造函数仍然有
结构成员的修饰符可以包含:public private
由于结构不能继承结构或者类,所以不能使用 protected 修饰符
结构可以实现接口
结构由于是值类型,因此在栈上分配内存
三、内存分配 与 内存对齐
操作系统的内存分配问题与内存对齐问题对于低层程序设计来说是非常重要的,对内存分配的理解直接影响到代码质量、正确率、效率以及程序员对内存使用情况、溢出、泄露等的判断力。而内存对齐是常常被忽略的问题,理解内存对齐原理及方法则有助于帮助程序员判断访问非法内存。
C#中的结构体与类的区别
C# 结构体(Struct)
C内存分配和内存对齐
c/c++深入篇之内存分配与内存对齐的探讨
9.2 值传递与引用传递 ref 与 out 关键字
首先:两者都是按地址传递的,使用后都将改变原来参数的数值。
其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,ref是有进有出,out是只出不进。
C#中out和ref之间的区别
C#中ref和out关键字的应用以及区别
- 描述一下 Struct 与 Class 有哪些区别
i.class 引用类型,struct 值类型;
ii.结构体不支持继承;
iii.结构体不能声明默认的构造函数;
- 按照CLR的默认内存对齐方式计算出下面结构的内存大小
12、16、24
-
如何实现值类型的参数引用传递?
ref、out
- 描述一下 ref 与 out 关键字的使用场景
ref:在参数传入之前变量必须赋值
out:参数在函数返回之前必须赋值
Delphi函数的out、var等关键字的作用,和使用场景
|