- 问题1:
在C#中,我们知道基本类型比如int,
我们定义了如下变量:
int i=3;
字面量3直接保存在stack上,那变量名i存储在哪?
猜想:
与内存结构有关。
- 问题2:
int a[10]={0};
printf("%d",sizeof(a));
变量的大小、类型是否有一张表存储?
猜想:
在编译期间根据类型决定大小。
- 问题3:
int a[10]={0};
printf("a=%p",a);
printf("&a=%p",&a);
//------------------------
printf("(a+1)=%p",(a+1));
printf("(&a+1)=%p",(&a+1));
a与&a结果相同,而(a+1)与(&a+1)结果不同。
- 问题4:
//c语言中,将数组作为参数传入某方法中,在该方法中是无法知道该数组的长度。必须将数组的长度也作为参数传入方法。
//但在C#语言中,将数组传入某方法,可以在该方法中访问到该数组的所有信息。
问:
为何C#中能访问到数组的长度等信息?作为一个类封装?传入到方法中的是什么?
猜想:
c语音中传入的数组的首地址,即a[0]的内存地址。
而C#中传入的引用?