C#数组和指针是什么

这篇文章主要介绍“C#数组和指针是什么”,在日常操作中,相信很多人在C#数组和指针是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#数组和指针是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

C#数组和指针

1。C#数组和vector的区别在于,C#数组的长度是固定的。C#数组一经创建,就不允许动态的修改长度。指针可以像迭代器一样用于遍历和检索C#数组中的元素。现代C++程序应该尽量使用vector和迭代器类型,而避免使用低级的C#数组和指针。只有在强调速度时,才在类实现的内部使用C#数组和指针。

2。C#数组的缺陷在于没有size()操作,也就是程序员无法知道一个给定C#数组的长度。如果需要更改C#数组的长度,就必须再声明一个更大的C#数组,把原来C#数组的内容copy到新C#数组中去。

3。引用不能定义C#数组。没有所有元素都是引用的C#数组。

4。非const变量和要到运行阶段才知道值的const变量都不能用作C#数组定义的维数。

const unsigned buf_size = 512;  // const 变量.  int staff_size = 217;   // 非const变量.  const unsigned sz = get_size();   // 运行时才确定的const变量.  char buf1[buff_size]; // ok.  char buf2[buff_size + 1];   // ok, 常量计算表达式.  double salaries[staff_size];  // error, 非const变量做维数.  int test_rest[sz];  // error, 运行时才确定的const变量.

5。默认初始化。
在函数外定义的内置类型C#数组,元素都初始化0。函数内定义的内置类型C#数组,元素都无初始化过程。如果是类类型的C#数组,无论在哪里定义,都调用默认构造函数初始化。

6。显示初始化。

int ia[3] = {0, 1, 3};  char ca1[] = {’c’, ’+’, ’+’};  char ca2[] = {’c’, ’+’, ’+’, ’//0’}; [Page]  char ca3[] = /"c++/";// ca3和ca2有相同的维数和初始化值,含有四个元素.  char ca4[3] = /"c++/"// 这会产生一个编译错误,因为/"c++/"是一个长度为4的字符串.  string str_arr[3] = {/"hi/", /"heipi/"}; // str_arr[2]是一个值为空的string类型元素.

7。与vector不同,一个C#数组不能用另外一个C#数组初始化,也不能将一个C#数组赋值给另一个C#数组。个别编译器扩展功能,支持C#数组复制,但是如果希望编写的程序能在不同的编译器上运行,应该避免这类应用。

到此,关于“C#数组和指针是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/dev/230446.html

(0)
上一篇 2022年1月15日 18:55
下一篇 2022年1月15日 18:56

相关推荐

发表回复

登录后才能评论