C 中值型別和引用型別的區別

2021-06-28 00:47:00 字數 1315 閱讀 2222

概念:

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...