分析
1.题目要求定义的是指针数组 ,而不是 数组指针!!!!注意括号!!
指针数组首先是一个指针,数组内的每个元素是指针,写为* str[10]
数组行指针是(*str)[10],是二维数组写为矩阵的形式
解答
#include <stdio.h> #include <string.h> int main() { char s[10][30]; char *ptr[10]; int i,j; char str[30]; //输入 for(i=0;i<10;i++) { gets(s[i]); ptr[i]=s[i]; } //冒泡排序 for(i=0;i<10-1;i++) { for(j=0;j<10-1-i;j++) { if(strcmp(*(ptr+j),*(ptr+j+1))>0) { strcpy(str,*(ptr+j)); strcpy(*(ptr+j),*(ptr+j+1)); strcpy(*(ptr+j+1),str); } } } //输出 for(i=0;i<10;i++) puts(ptr[i]); return 0; }