C#中使用指针

C#中使用指针

ID:38047408

大小:27.50 KB

页数:4页

时间:2019-05-24

C#中使用指针_第1页
C#中使用指针_第2页
C#中使用指针_第3页
C#中使用指针_第4页
资源描述:

《C#中使用指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、我想许多C程序员不愿意学习Java的原因就是Java不支持指针,但是现在类似于Java的C#却已经支持了指针,你可以使用unsafe关键字来告诉编译器下面的函数或者代码是不安全的。一旦你使用了unsafe,那么你就可以在unsafe区域中使用指针。    程序1  usingSystem;  classnish  {  unsafestaticvoidIncrement(int*p)  {  //incrementtheintpointedtobyp  *p=*p+1;  }  publicstaticvoidMain()  {  inti=1;  //wepasstheaddresso

2、ftheinttothefunctionasitexpectsapointer  unsafeIncrement(&i);  //nowweprintoutthevalueofi  Console.WriteLine(i);  }  }    当你运行这个程序,你将会看到输出结果2。这是因为你已经将变量i的地址送给了函数Increment来处理。变量i建立于栈中,&i则表示它在栈中的地址。这样在函数Increment中,p就指向i的地址,当我们对*p加1时,实际上是对变量i进行增加。    程序2  下面的程序将会让你更清楚的了解:    usingSystem;  classnish 

3、 {  unsafepublicstaticintMain()  {  intj=100;  intk=100;  Console.WriteLine("addressofj={0}andaddressofk={1}",(int)&j,(int)&k);  Console.WriteLine("j={0}k={1}",j,k);  int*p;  p=&j;  Console.WriteLine("pnowpointsto{0}",(int)p);  *p=200;  Console.WriteLine("j={0}k={1}",j,k);  p=&k;  Console.WriteLi

4、ne("pnowpointsto{0}",(int)p);  *p=300;  Console.WriteLine("j={0}k={1}",j,k);    return0;  }  }    当运行上面的程序,我们将得到下面的结果。你会看到一些你熟悉的东东,下面的输出结果将会清楚的看到程序执行的过程:    addressofj=1244312andaddressofk=1244308  j=100k=100  pnowpointsto1244312  j=200k=100  pnowpointsto1244308  j=200k=300    首先将变量的j的地址赋给p,这样当我们

5、改变*p时,j的值也将自动改变。接着我们将p指向变量k的地址,这时改变*p则是在改变k。    同样需要清楚的就是变量p也有自己的地址,下面的程序将会清楚的告诉您一切。    程序3  usingSystem;  classnish  {  publicstaticvoidMain()  {  unsafe  {  inta=100;  int*p;  p=&a;  Console.WriteLine("addressofais{0}",(int)&a);  Console.WriteLine("pnowpointsto{0}",(int)p);  Console.WriteLine("

6、addressofthepointervariablepis{0}",(int)&p);  }  }  }    一运行上面的代码,我们将获得下面显示的输出。你将同样获得一些类似的输出,注意这里unsafe关键字的使用。    addressofais1244312  pnowpointsto1244312  addressofthepointervariablepis1244308    1244308是指针变量p的地址,而1244312则是指针p所指向的地址,我们使用*p来获得。    程序4  Okey。在最后的一个程序中,我将向大家介绍如何使用指针来操作字符串。在这个程序中存在一

7、个程序来将一段字符串通过异或运算进行编码解码的操作。如果您将一段字符串送入这个函数这个字符串将会被编码,如果您将一段已经编码的字符送入这个函数,这段字符串将会被解码。当这并不是一个安全的加密方法,我仅仅是想通过这个例子来演示一下指针的作用。    usingSystem;  classnish  {  publicstaticvoidMain()  {  strings="CodeProjectiscool";  Console.W

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。