C++小tips

1.关于强制转化的问题:

已经 int**Matrix; 强制类型转换时为了防止出现意外,编译器不同要求也不同


一般编译器会自动转化了

也可以加上

Matrix=(int**) new int*[];

 

2.new的另一个问题

只有是指针才需要new ,因为系统不知道要开辟多大的空间

如果不是指针,比如 int top;这种时候系统知道要开辟4个字节的空间,不需要再new告诉空间的数目。

 

3.二维数组做参数使用的问题

int data[3][4] = { {1, 2, 3, 4}, {5, 5, 7, 8}, {9, 10, 11, 12} };

int total = sum(data, 3);  

sum 函数书写:

int sum( int (*arr) [4], int size); 或者是int sum(int arr[][4], int size);

理解如下:

data是数组名,这个数组含有三个元素,分别是data[0],data[1],data[2];每一个data[i]本身又是又四个int类型的元素组成的数组

所以:data是指向 含有四个int数据元素的 数组的  指针

int *a[4];//表示的是 a是一个指针数组,这个数组里面的内容是4个int*也就是int的指针变量

int  (*a)[4];//表示的则是一个数组指针,这个指针,指向 含有四个int元素 的数组 

 

。。。所以最终得出二维数组的名字是指针不是数组?再去翻翻书吧== 

 

posted @ 2015-12-20 17:50  Nicolellu  阅读(161)  评论(0编辑  收藏  举报