开始学习C#
2017年8月9日
面试广州光娱失败
面试官指出我基础不扎实的缺点
先学好C#和Lua作为我的主语言,然后着眼未来再学习图形学,shader,网络编程,算法,设计模式
现在,先开始我的C#学习过程,既是复习,又是重新打好基础。以上!
8月9日:
数据类型分为值类型与引用类型
值类型会存入 stack 栈中,从高位内存开始,向低位内存填充数据
比如:
int a=1;
int b=2;
int c=3;
if(``){
d=4;
}
Stack 栈底 | 内存地址 |
---|---|
a=1 | 2000 |
b=2 | 1996 |
c=3 | 1992 |
d=4 栈顶 | 1988 |
不管变量的可用域大小,都存在这个栈里。
而引用类型就不同了,这里用一个例子来解释:
创建一个对象:
customs cus;//在栈stack里给这个名字是cus的引用分配4个字节的空间。
cus=new customs();//在堆heap中找到足够放得下customs实例的第一个空间,实例化这个对象,并把这个实例化出来的对象的地址传给栈中的cus
需要知道的是,堆heap中的对象是由.NET的垃圾收集器自动管理,对象会在程序的结束或者所有引用它的变量全部销毁后自动回收。
另外,比较运算符在对象比较上的重载和值类型完全不同,值类型是比较具体的值,而对象使用==比较时,比较的是,是否为同一个对象,即比较对象的地址是否相同。
8月10日:
首先是昨天面试的内容:C/C++中,各种基本类型与零的比较怎么写
布尔值bool:
if (flag) // 表示flag为真
if (!flag) // 表示flag为假
整型int,short:
if (value == 0)
if (value != 0)
浮点数float,double:
const float