首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

int compare( const void *arg1, const void *arg2 ) { /* Compare all of both st

2012-09-29 
int compare( const void *arg1, const void *arg2 ) {/* Compare all of both stint compare( const void

int compare( const void *arg1, const void *arg2 ) { /* Compare all of both st
int compare( const void *arg1, const void *arg2 )
{
  /* Compare all of both strings: */
  return _stricmp(, * ( char** ) arg2 );
}


MSDN 上的一段程序

这里

 
* ( char** ) arg1


为什么要这样?跟(char*)arg1 有什么不同???

[解决办法]
不知,(char *)arg2 也可以编译通过的
等高手解释
[解决办法]
(char*)arg1 是把arg1当成char*
* ( char** ) arg1是把arg1当成char**,它传过去的是*arg1
[解决办法]

探讨
(char*)arg1 是把arg1当成char*
* ( char** ) arg1是把arg1当成char**,它传过去的是*arg1

[解决办法]
C/C++ code
/* QSORT.C: This program reads the command-line 
* parameters and uses qsort to sort them. It
* then displays the sorted arguments.
*/

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int compare( const void *arg1, const void *arg2 );

void main( int argc, char **argv )
{
int i;
/* Eliminate argv[0] from sort: */
argv++;
argc--;

/* Sort remaining args using Quicksort algorithm: */
qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare );

/* Output sorted list: */
for( i = 0; i < argc; ++i )
  printf( "%s ", argv[i] );
printf( "\n" );
}

int compare( const void *arg1, const void *arg2 )
{
/* Compare all of both strings: */
return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
}


热点排行