回 帖 发 新 帖 刷新版面

主题:数组 跟指针是什么关系呀

数组 跟指针是什么关系呀  
#include <iostream>
using namespace std;
int main()
{void sort(char s[][6]);
 int i;
 char str[10][6];
 cout<<"input 10 strings:"<<endl;
 for (i=0;i<10;i++)
   cin>>str[i];
 sort(str);
 cout<<"Now,the sequence is:"<<endl;
 for (i=0;i<10;i++)
   cout<<str[i]<<endl;
 return 0;
}

void sort(char s[][6])
{int i,j;
 char *p,temp[10];
 p=temp;
 for (i=0;i<9;i++)
   for (j=0;j<9-i;j++)
     if (strcmp(s[j],s[j+1])>0)
      //if (s[j]>s[j+1])
      {strcpy(p,s[j]);
       strcpy(s[j],s[j+1]);
       strcpy(s[j+1],p);
      }
}
指针p为什么能strcpy到数组s[j+1]中呀 不是,一个是地址,一个是确切的值吗

回复列表 (共2个回复)

沙发

char s[][6] 表示 包含char[6]数组的数组,如果单独使用数组名,比如 char a[12];a 表示数组的首地址,所以char *p 和 s[j+1] 都表示一个地址

板凳

char *p,temp[10];
 p=temp;
表示指针p指向数组temp的第一个元素的地址
很多时候数组都可以用指针来表示

我来回复

您尚未登录,请登录后再回复。点此登录或注册