【疑问】 一个小程序中的

houmin0036 2013-03-27 10:03:02
#include <stdio.h>
int main()
{
int sort (char *name[], int n);
int print (char *name[], int n);
//定义一个指针数组name,每一个元素指向一串字符.
char *name[] = {"Follow me", "BASIC", "Great Wall", "FORTRAN", "Computer design"};

int n=5;
sort (name, n);
print(name, n);
}


#include <string.h>
int sort (char *name[], int n)
{
int i, j, k;
char *t;

for (i=0; i<n-1; i++)
{
k = i;
for (j=i+1; j<n; j++)
{
if (strcmp(name[k], name[j])>0)
{
k = j;
}
}

if (k != i)
{
t = name[i];
name[i] = name[k];
name[k] = t;
}
}
return (name, n);
}




#include <stdio.h>
int print (char *name[], int n)
{
int i;
for (i=0; i<n; i++)
{
printf("%s\n", name[i]);
}
}


关于这里if (strcmp(name[k], name[j])>0)我看书上讲得是:name[k]和name[j]是第k个和第j个字符串的起始地址 那么这个if语句中的strcmp是在判断它们地址的大小吗? 这不对啊 strcmp应该是判断字符串的呀 正确的理解是什么?
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
houmin00362 2013-03-28
  • 打赏
  • 举报
回复
多看看书 就懂了
csdn5211 2013-03-28
  • 打赏
  • 举报
回复
字符串的起始地址就是字符串,字符串就是一个字符指针,指针就是地址……

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧