概念:
1.值型別:資料儲存在記憶體的堆疊中,從堆疊中可以快速地訪問這些資料,因此,值型別表示實際的資料。
2.引用型別:表示指向儲存在記憶體堆中的資料的指標或引用(包括類、介面、陣列和字串)。
區別:
基本區別在於它們在記憶體中的儲存方式。值型別只將值存放在記憶體中,這些值型別都儲存在堆疊中。原始資料型別(如bool和int)都屬於此型別。而引用型別的記憶體單元中只存放記憶體堆中物件的位址,而物件本身放在記憶體堆中。如果引用的值型別的值是null,則表示未引用任何物件。
下面我用兩個例子說明它們的區別,這兩個例子是我在
新建乙個控制台應用程式:取名test1
using system;
using system.collections.generic;
using system.text;
namespace test1
",val);
test(val);
console.writeline("該變數此時的值為:",val);
console.read();
}
static void test(int getval)
} }
命令提示符視窗得出的結果:
該變數的初始值為:100
該變數此時的值為:100
為了說明問題,再新建乙個控制台應用程式:取名test2
using system;
using system.collections.generic;
using system.text;
namespace test2
class program
",objtest.val);
test(objtest);
console.writeline("變數的值為:",objtest.val);
console.read();
}
static void test(datatypetest datatest)//這裡傳遞的是物件位址
} 命令提示符視窗得出的結果:
該變數的初始值為:100
變數的值為:200
總結:
C 中值型別和引用型別的區別
概念 1.值型別 資料儲存在記憶體的堆疊中,從堆疊中可以快速地訪問這些資料,因此,值型別表示實際的資料。2.引用型別 表示指向儲存在記憶體堆中的資料的指標或引用 包括類 介面 陣列和字串 區別 基本區別在於它們在記憶體中的儲存方式。值型別只將值存放在記憶體中,這些值型別都儲存在堆疊中。原始資料型別 ...
理解C 中值型別和引用型別的區別
概念 1.值型別 資料儲存在記憶體的堆疊中,從堆疊中可以快速地訪問這些資料,因此,值型別表示實際的資料。2.引用型別 表示指向儲存在記憶體堆中的資料的指標或引用 包括類 介面 陣列和字串 區別 基本區別在於它們在記憶體中的儲存方式。值型別只將值存放在記憶體中,這些值型別都儲存在堆疊中。原始資料型別 ...
C 中值型別和引用型別
概念 1.值型別 資料儲存在記憶體的堆疊中,從堆疊中可以快速地訪問這些資料,因此,值型別表示實際的資料。2.引用型別 表示指向儲存在記憶體堆中的資料的指標或引用 包括類 介面 陣列和字串 c 中定義的值型別包括原型別 sbyte byte short ushort int uint long ulo...