谢谢各位,但是我还是有点不明白。
书上说指针是一种数据类型,和int double 一样。但是假如现在定义了一个double型的指针,申请了一片地址,把地址给了指针,然后接着把这个地址赋给一个double型的指针,这个时候就有错了,为什么?难道是两个数据变量类型不同就不能互相赋值?那么地址到底是什么数据类型,这里小弟查书,书上又说地址也是一个数据类型,我有点不明白。
doulbe * ipMatrix, *Matrix;
int i;
ipMatrix=(double *)malloc(Row * Col*sizeof(double));
Matrix=(double *)malloc(Row * sizeof(double));
for(i=0;i<Row;i++)
*(Matrix+i)=ipMatrix+i*Col; /*这里有错*/
假如我定义一个int型的二维数组,还是如此定义,再编译,就不会有报错。这是为什么?我怎么感觉这里指针是不是有点我没有理解的东西。
int * ipMatrix, *Matrix;
int i;
ipMatrix=(int *)malloc(Row * Col*sizeof(int));
Matrix=(int *)malloc(Row * sizeof(int));
for(i=0;i<Row;i++)
*(Matrix+i)=ipMatrix+i*Col; /*用double型数据时这里有错,但是改成int型的时候这里就没有错了*/
然后再调用Matrix时就是双层指针了。
谢谢各位,
大家多提自己的想法!