可是...最近看C++看的.有点连带C了.C++不允许..可是...我记得....我再想想....
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main()
{
int const c=10;
void const *a=&c;
int const *b=a;
printf("%d",*b);
}
这样子..原来可以啊...?
.............
----------------解决方案--------------------------------------------------------
这样可以。这样似乎没什么,只是用指针a作了一个过渡而已,因为任何类型的指针都可以转换为(void *)型,而指针b只
是和指针a一样,指向同一个内存地址,也就是c的地址了。
----------------解决方案--------------------------------------------------------
你举的例子运行不了啊!
----------------解决方案--------------------------------------------------------
程序大体上没问题,都是些小毛病.修改后:
#include <stdio.h>
#include <stdlib.h>
int compare_integers( void const*a,void const *b );
int main(int argc, char *argv[])
{
int *array;
int n_values;
int i;
printf("how many values are there?\n");
if( scanf("%d",&n_values)!=1||n_values<=0 ){
printf("Illegal number of values.\n");
exit(EXIT_FAILURE);
}
array=malloc(n_values*sizeof(int));
if( !array ){
printf("Can't get memory for that many values.\n");
exit(EXIT_FAILURE);
}
printf("please input these numbers:\n");
for( i=0;i<n_values;i+=1 ){
if( !scanf("%d",&array[i]) ){
printf("Error reading value #%d\n",i);
free(array);
exit(EXIT_FAILURE);
}
}
qsort( array ,n_values ,sizeof(int),compare_integers );
for( i=0;i<n_values;i++)
printf("%d\n",array[i]); getch();
free(array);
return EXIT_SUCCESS;
system("PAUSE");
return 0;
}
int compare_integers( void const*a,void const *b )
{
register int const *pa=a;
register int const *pb=b;
return *pa>*pb?1:*pa<*pb?-1:0;
}
[此贴子已经被作者于2006-8-15 9:13:55编辑过]
----------------解决方案--------------------------------------------------------