C#多维数组如何用变量定义c++ 数组长度为变量

1. 如果函数只有传入参数,比如:

//C++中的输出函数
 

2. 如果函数有传出参数,比如:

C++不能直接传出数组,只传出数组指针,

在C#中数组是直接使用的,而在C++中返回的是数组的指针,这句用来转化这两种不同的类型.

关于MarshalAs的参数用法以及数组的Marshaling,可以参见这篇转帖的文章:

字符数组的传递基本与4相似,只是mashalAs 时前面加上Out。

感谢您的回答,请问怎么把C#的字节数组传入C++
你调用C++的代码,类型要对应上啊,你想把byte数组传到C++代码里,C++的函数参数也得是byte数组啊

问:c/c++在建立数组时能否以变量作为数组长度?

首先明确的表示:不能!!!

c/c++在数组初始化时数组的长度都必须是一个常数,不能是变量(但可以是常变量),这一点是毋庸置疑的。但是为什么提出这个问题呢,是因为在使用codeblocks和dev时发现,数组长度在初始化时用变量,不报错!

非但没有报错,在后面对其赋值也是正确且可行的(吓得我回去赶紧翻书),发现这其实是很多编译器的扩展,为方便用户使用(确定不会误导用户?)。然后又实验了一下在初始化时赋值:

这时候又报错了(无fuck可说……),以我目前的水平还不能很好的理解,只能理解为编译器的“好心做错事”了。然后在使用的过程中一定避免用变量定义就好了(但有时候用起来会很方便)。

我要回帖

更多关于 c++ 数组长度为变量 的文章

 

随机推荐