C++ VS C#(5):数组
来源:互联网 发布:真丝枕巾 知乎 推荐 编辑:程序博客网 时间:2024/05/24 23:16
//=====================================================================
//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++ VS C#(5):数组
- C语言 数组VS指针
- [转] c指针 vs 数组
- C#(面向对象基础数组VS集合VS范型)下-2
- C语言:深复制VS浅复制 数组VS指针
- 【c#】VS
- vs(c++)修改图标
- 数组引用(C++)
- 动态数组(c++)
- C++(4)数组
- bash vs perl vs c
- Java vs C++(9)NULL vs null
- C和指针(5)数组
- C/C++,C#,JAVA数组
- C 数组
- C 数组
- [C#]数组
- C 数组
- DIV+CSS解决IE6,IE7,IE8,FF兼容问题
- 查找哪些表有ntext列
- Android的IPC机制Binder的各个部分
- mupdf源码分析
- 查看本机端口占用情况
- C++ VS C#(5):数组
- SQL 2005安装错误:性能监视器计数器要求
- WinCE 6上面添加多语言支持需要注意的问题
- extern
- 内核杂记
- chmod命令详细用法
- 设备驱动杂记
- 破解某科大校园网帐号密码程序的设计及其实现
- 参数前缀