//=====================================================================
//TITLE:
// C++ VS C#(5):数组
//AUTHOR:
// norains
//DATE:
// Monday 13-December-2010
//Environment:
// Visual Studio 2010
// Visual Studio 2005
//=====================================================================
1.数组
C++和C#都是用“[]”来表示数组,只不过不同的是,一个是在后,一个是在前,如:
如果要指定数组的大小,C++可以在“[]”中直接填入数字,而C#必须重新new一次,如:
另外,这两者语言都可以指定数组的大小,但这里有个区别,C#中数组大小必须要和元素个数相匹配,如:
C++能通过,是因为它可以自动给没有赋值的元素自动给予0的数值,而C#则必须要一一指定,所以代码只能这样:
在C++的时候,是不是经常碰到数组越界的情况?但在C#中,如果你只是想读取数值,那么使用foreach完全就可以不用担心这个问题,如:
这里只需要注意一点,声明的Val是只读,如果强行赋值会出错,如:
如果要对数组进行赋值,就不能使用foreach,而只能是for了。
这两种语言,都支持多维数组,当然声明就是大相径庭了,以二维数组为例:
C#的数组还有一个很有意思的特性,就是数组的数组,也就是很多教科书上所说的变长数组。多维数组和变长数组的区别在于,前者以“,”分隔,而后者是以多个“[]”分隔,如:
但在C++很多教科书里,却很少提到数组的数组这个词语,是不是C++不支持呢?答案当然不是,因为数组的数组在C++里其实也就是数组的概念,对于上面的C#代码,C++中可以变更表示如下:
为什么C++里面没有特意的声明变长数组的语法,但却能实现C#的相应的功能呢?其实很简单,并不是C++不能,而是C#不行。这个就要从指针说起,因为C#为了更安全,所以取消了指针这个遭人诟病的隐患,而C++的这个实现,其本质是存储指针的数组,正因为如此,取消了指针的C#就不能使用声明多维数组的方式来实现变长数组,所以才会独立出一个声明变长数组的语法。
分享到:
相关推荐
在写C#TCP通信程序时,发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和c++等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把...
c++调用C# COM 参数是结构体数组
c#调用c++DLL,DLL里是二维数组 ,c#里如何调用二维数组
C#将字符串数组传递给C++ DLL(MFC),VS2010
资源代码演示的是c#代码调用c++ DLL 的方式。该演示为原创,绝非搬砖。解决了c# 调用 C++ Dll获取相关信息之如何传递结构体数组引用以及如何处理获取到的结构体数组数据的问题。
当C#调用C++dll时,需要传递自定义结构的数组,该怎么办? 示例给出了方案
主要介绍了C#调用C++DLL传递结构体数组的终极解决方案的相关资料,需要的朋友可以参考下
发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和VC6.0等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体...
主要解决开发人员遇到的常规问题,针对 C# 结构体 和 Byte 数组之间互相转换遇到的问题,代码中进行了简单封装,方便客户调用,下载可以直接使用,方便快捷。
C++ 与C#之间的指针参数传递,实现无限量数据的传递,轻松无压力,方便在C++里面获取或者从C#传递数据到C++的动态库调用内。
C#向C++封送结构体数组[归类].pdf
下面小编就为大家分享一篇C#访问C++动态分配的数组指针(实例讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
C、C#、C++、Java 中定义以为数组的方式 C、C#、C++、Java 中定义以为数组的方式 C、C#、C++、Java 中定义以为数组的方式
C# 获取C++的连续数据。 两种方式:1,返回C++指针,2,将值存到C#的数组中。
C++和C#之间使用不同数据类型,当使用不同的语言实现时就需要转换数据类型
附件是一套C#调用C++dll时,传递数组参数的示例,亲测可用。。。。。。。。。。。。。。。。。。。。。。。
C#调用C++的dll实例,回调函数,string和int数组参数传递,在vs2010下调试通过,总结在这里,供大家参考。
C#窗体二维数组求最大值最小值
下面小编就为大家分享一篇基于C#调用c++Dll结构体数组指针的问题详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧