急急急~~~! int *b=(int*)array;是什么意思,b[4]结果为什么是0?

程序如下:
int array[2][5]={{1,3,6,7},{2,4,16,8}};
int *b=(int*)array;
cout<<b[4]<<endl;

这句话是说指针b指向了数组array的首地址。
根据你array的定义,array数组里的值是 1,3,6,7,0,2,4,16,8,0
所以b[4]就是0追问

烦请再解释一下:(int*)什么意思

追答

(int*)就是整型指针啊。。。

追问

前面已经定义了int array[][];
接下来(int*)array作何解,为什么不直接int*b=array?
加括号怎么解释?

追答

因为array是个int型的二维数组,这个array可以表示为整个数组的首地址,即int*,也可以表示为二维数组的第一维数组的首地址,即int**

直接int* b =array是可以的,但是加一个(int*)表示强转,更保险

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-15
array相当于一个int型指针常量,它所指区域的由低到高地址排布是array[0][0],array[0][1],array[0][2],array[0][3],array[0][4],array[1][0]......你未初始化的变量默认为零,一行五个变量,前四个赋值,最后一列的都没初始化,因此,array[0][4],array[1][4]也就是b[4],b[9]都为零

int *b(int*)是什么意思
函数名为b,函数参数为int类型指针,返回值为int类型指针

int b[ ]={0}与int b[4]={ }到底那个是正确的初始化,c语言
两个都是对的,我上机试过的

c语言里面int* a,int* b是什么意思?
当int* a和int* b后面都有分号时,int* a;是声明或说明指向int型变量的指针a,int* b;是声明或说明指向int型变量的指针b。题面中二者后面都没有分号,应该说都是错误语句。行话这样表述:int* a;是声明int*型指针a,int* b;是声明int*型指针b。当然要明白,指针的类型是指它指向的目标的...

int(b)==(int)&b[0][0] b是行指针,这个是什么意思
楼上回答什么啊,注意是==不是=,什么还送到,无语了。如果b是一个二维数组名,那么b就是第一行,b[1]就是第二行……等等,b[0][0]就是第一行的第一个元素,b[0][1]就是第一行第二个元素……等等。

C语言:int (*)[]是什么意思
int (*b)[2];这是定义了一个数组指针,本质上讲,定义了b,b是一个指针变量,该指针变量指向一个数组,数组有两个int的元素 int *b[2];这是定义了一个指针数组,本质上讲,定义了b,b是一个数组,数组有两个元素,两个元素都是指向int型数据的指针 像这种问题,先根据运算符优先级\/结合性的原则,...

c++中(int*)(&b)怎么理解 b是一个类的实例
即如果b是类B的实体,那么&b就是B*型的指针。2 (int *)这个操作是强制转换,即把后面跟着的指针(地址)值,转换成int *型,也就是整型指针。对该指针进行取值,加减等操作时,都是按照整型来做的。所以(int*)(&b)的含义就是取变量b的地址,并转为整型指针类型。

c语言中(int*)是什么意思
int*代表的是int型的指针。声明的变量就叫指针变量。存放地址的变量称为指针变量。指针变量是一种特殊的变量,不同于一般的变量,变量存放的是数据本身,而指针变量存放的是数据的地址。举例:int* a = 68 ,系统为变量a分配的首地址为0X065FDF4H,声明空指针long *p = NULL,p=&a是存放变量a地址...

为什么c语言中int*b[]={1,2,3,4,5};这样赋值不对
[]的优先级比*高,所以b是个数组,让后再与*结合,说明数组里的元素是指针类型,所以b是一个由返回类型是int型的指针所组成的数组。而你的赋值语句里 1,2,3,4,5都是int型,而非指针型,所以无法赋值。指针可以赋值为零.所以 int*b[]={0};是正确的。

int *p;p=(int *)1000; 为什么加括号? 好像是为了 强制取整 , 但是...
p=(int*)1000; 这个是把1000当作一个整数的地址赋给p ,(就是把数值1000强制转换为一个地址值)

int *p=(int *)&a;是什么意思啊?
a加了const表示常量,告诉编译器这不能修改值,而如果进行int *p = &a;这就可能通过p修改a的值,C++编译器会阻止你这么做,编译报错。加了(int*)&a编译器就不管你了,它的检查工作是完成了但留下了隐患。运行这个代码你会发现输出结果是7,这是因为编译器看到const int a = 7;翻译cout << a...

相似回答