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

指针有关问题求解

2013-05-02 
指针问题求解#includestdio.h#includestring.hvoid sort(char *ch[],int n){char st[80]int i,j,kfo

指针问题求解
#include<stdio.h>
#include<string.h>
void sort(char *ch[],int n)
{
char st[80];
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(ch[j],ch[k])>0) k=j;
if(k!=i)
{
strcpy(st,ch[i]);
strcpy(ch[i],ch[k]);
strcpy(ch[k],st);
}
}
}
main()
{
char *string[5],a[5][80];
int i;
for(i=0;i<5;i++)
string[i]=a[i];
for(i=0;i<5;i++)
gets(string[i]);
sort(string,5);
for(i=0;i<5;i++)
printf("%s\n",string[i]);}
问一下,为什么此处string[i]前面没有加*,没加*号的时候不是表示地址么? 指针 String
[解决办法]
char *string[5]; // [字符串(指针数组)],把它当做个二维数组就好理解了

[解决办法]
char *string[5];表示定义了一个5个元素的数组,每个元素是一个字符指针char*。string[i]就是一个char*
[解决办法]
字符串可以通过它的首地址进行访问,比如:
char * s = "abcd";
printf("%s\n", s);//打印出abcd

char * string[5];保存了5个字符串的首地址,通过string[i]访问每个字符串
[解决办法]

char* string[5]
这样你就好理解了,这里的string是一个存有5个char*类型元素的一元数组。

热点排行