里面是VC 命令,有什么看不懂的?或者说谁叫你要看懂的?你用C#去理解它当然不行了。
unsafe包装的是非安全代码,一般象上面那样涉及指针的内容
unsafe包装的是非安全代码,一般象上面那样涉及指针的内容
解决方案 »
- “无法获取托管类型的地址和大小,或无法声明指向它的指针”如何解决
- C# 硬件通信
- 编程实现在网页中打开PDF文件后,关于打印后的处理问题
- dataview初始化问题
- WinForm中图片上传的问题。
- 用c#开发oracle数据库系统,请问访问数据库时我用OleDb呢--还是OracleClient呢?
- 如何将datagrid中选中的多条记录提取出来放到另外一个数据集中,我的代码怎么不行啊?谢谢!!
- 方法传递参数的问题!
- 如何响应双击DataGrid事件
- 欢迎C#有1年以上经验的朋友结盟,有意者请留下QQ号码
- 请教UDP和TCP通讯的问题
- .net对多台机子同时访问同一个函数有无限制?该函数需从数据库读取数据
2.*p++ = *p++ = 1; //这是什么意思
后面的*p++ = 1;讲指针的第1个数置为1,然后指针向前推一位..*p++自然就是第二个位置了.
3.
*p = p[-1] + p[-2];
指针当前位置的值为前面二个之和.
为什么循环是从2开始就是这个道理.
4.我是根据结果推出的答案.不真确的的地方望指正
C#中不推荐使用指针.我还是头一次看到这样的代码.
hope it helps
》后面的*p++ = 1;讲指针的第1个数置为1,然后指针向前推一位..*p++自然就是第二个位置了.那么说太复杂了,你可以理解为:p++ = p++ =1而这个P是指 new int[100] 的栈 的位置也就是p[2] = p[1] =1就是p[2] = 1; p[1]=1;
stackalloc 函数就是在堆栈上分配内存块。这个不难理解吧.>>2.*p++ = *p++ = 1; //这是什么意思
大家都说了.>>*p = p[-1] + p[-2]; P[E] 操作与 *(P + E)是等效的.实际上就是
*p = *( p - 1 ) + *( p -2 )估计现在应该明白了吧.
*p 初始指向fib
*p++ = *p++ = 1 先执行右边的*p++=1,先是*p=1 就是fib[0]=1;然后*p++,指向下一个fib[1]
*p++ = *p++ 先是*p=fib[1]=1,然后*p++,指向fib[2]所以在*p = p[-1] + p[-2];这个语句中,这个*p就是指fib[2]