A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© skywan 中级黑马   /  2015-7-22 17:35  /  1579 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指针看的头都大了,还是有点搞不明白,求大神。在下面的代码中char *a3[5] = {"wer","ad","fgg","rt","bg"};先定义了一个字符串指针,在调用函数sortstring(a3,5);,那a3是值还是地址呀,void sortstring(char *a3[],int len)还有传递char *a3[]又是什么??这怎么理解?
  1. void sortstring(char *a3[],int len){
  2.         //冒泡排序
  3.         char *temp;//临时存放地址
  4.         for (int i = 0; i < len-1; i++){
  5.                 for (int j = 0; j < len - 1 - i; j++){
  6.                         //比较字符串大小用函数
  7.                         if (strcmp(a3[j], a3[j + 1])>0)
  8.                         {
  9.                                 //实现交换
  10.                                 temp = a3[j];
  11.                                 a3[j]=a3[j+1];
  12.                                 a3[j + 1] = temp;
  13.                         }
  14.                 }
  15.         }
  16. }
  17. int main(int argc, const char *argv[]){
  18.         //输入5个字符串并按字母顺序排列
  19.         char *a3[5] = {"wer","ad","fgg","rt","bg"};
  20.         for (int i = 0; i < 5; i++){
  21.                 printf("%s\n", a3[i]);
  22.         }
  23.         printf("\n");
  24.         sortstring(a3,5);
  25.         for (int i = 0; i < 5; i++){
  26.                 printf("%s\n",a3[i]);
  27.         }
  28.         return 0;
  29. }
复制代码

5 个回复

倒序浏览
我还没看到这里。。。等明天看到这,在解释。。。
回复 使用道具 举报
1.  a3 是地址
2.   void sortstring(char *a3[],int len)   是一个有两个参数,无返回值的函数。
3.   char *a3[]    的每一个元素都是一个指针,元素的个数由实参决定。
回复 使用道具 举报
我们还没学到呢啊!
回复 使用道具 举报
明天就学指针了。听说有点难
回复 使用道具 举报
本帖最后由 丁铭检 于 2015-7-23 20:38 编辑

char *a[]其实就是一个字符类型的指针数组。数组a[]中存储的就是每个字符串的首地址。。。就好比a[0]其里面存储的就是字符串“wer”的首地址。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马