[問題] 指標的用途?
剛剛看MSDN的範例
看到一個有趣的東西:
unsafe static void Main()
{
int number = 1024;
byte* p = (byte*)&number;
for (int i = 0; i < 1000; ++i)
{
System.Console.Write("{0:X2}", *p);
p++;
if (i % 10 == 9)
{
if (i%30 != 29) Console.Write(" ");
else Console.WriteLine();
}
}
}
紅字的地方是自己改的
發現...... 可以讀取超出陣列的東西......
其實,這樣子還蠻危險的
因為如果把
for (int i = 0; i < 1000; ++i)
{.......}
改成
while(true) {*p = 0xff; p++;}
的話,似乎會發生很有趣的事.......
===========================================================
MSDN有寫:
string在C#中是不可變更的
變更字串時,其實是new新字串,把舊字串拋棄
自己在想說.....
如果要變更文字,且要追求效率的話,使用指標強制變更內文會不會比較快?
以及,想請問指標這東西通常是拿來幹什麼用的?
什麼狀況下用指標會比較好?
自己的經驗不多,所以想請教這個問題。
--
◢ 鄉民啊!鄉民! 請告訴我誰是最純潔的人!
◢█ │
PTT │
██ :就是你!Snow White F23ko!│
█◤ ╯
◤ ﹨(╯▽╰ )∕
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.27.109.99
推
03/10 23:25, , 1F
03/10 23:25, 1F
→
03/10 23:26, , 2F
03/10 23:26, 2F
→
03/10 23:26, , 3F
03/10 23:26, 3F
推
03/10 23:43, , 4F
03/10 23:43, 4F
→
03/10 23:44, , 5F
03/10 23:44, 5F
→
03/11 00:39, , 6F
03/11 00:39, 6F
→
03/11 00:41, , 7F
03/11 00:41, 7F
→
03/11 00:42, , 8F
03/11 00:42, 8F
→
03/11 00:45, , 9F
03/11 00:45, 9F
→
03/11 00:47, , 10F
03/11 00:47, 10F
→
03/11 00:47, , 11F
03/11 00:47, 11F
→
03/11 00:48, , 12F
03/11 00:48, 12F
→
03/11 00:49, , 13F
03/11 00:49, 13F
→
03/11 00:49, , 14F
03/11 00:49, 14F
推
03/11 08:59, , 15F
03/11 08:59, 15F
推
03/11 09:00, , 16F
03/11 09:00, 16F
→
03/12 00:56, , 17F
03/12 00:56, 17F