下面的代码有什么问题?
int array[5] , i, *ip;
for( i = 0; i < 5; i++ ) array[i] = i;
ip = array;
printf( "%d/n", *( ip + 3*sizeof( int ) ) );
最后一行会打印3吗?
显然不会,c语言的指针算数总是自动采纳他所指向的对象的大小。所需要的语句应该是:
printf ( " %d/n", * ( ip + 3 ) );
如果按照原来代码, 根据所使用机器上sizeof( int )的大小, 也许是array[6]或array[12];