黑马程序员技术交流社区
标题:
指针
[打印本页]
作者:
skywan
时间:
2015-7-22 17:35
标题:
指针
指针看的头都大了,还是有点搞不明白,求大神。在下面的代码中char *a3[5] = {"wer","ad","fgg","rt","bg"};先定义了一个字符串指针,在调用函数sortstring(a3,5);,那a3是值还是地址呀,void sortstring(char *a3[],int len)还有传递char *a3[]又是什么??这怎么理解?
void sortstring(char *a3[],int len){
//冒泡排序
char *temp;//临时存放地址
for (int i = 0; i < len-1; i++){
for (int j = 0; j < len - 1 - i; j++){
//比较字符串大小用函数
if (strcmp(a3[j], a3[j + 1])>0)
{
//实现交换
temp = a3[j];
a3[j]=a3[j+1];
a3[j + 1] = temp;
}
}
}
}
int main(int argc, const char *argv[]){
//输入5个字符串并按字母顺序排列
char *a3[5] = {"wer","ad","fgg","rt","bg"};
for (int i = 0; i < 5; i++){
printf("%s\n", a3[i]);
}
printf("\n");
sortstring(a3,5);
for (int i = 0; i < 5; i++){
printf("%s\n",a3[i]);
}
return 0;
}
复制代码
作者:
丁铭检
时间:
2015-7-22 22:21
我还没看到这里。。。等明天看到这,在解释。。。
作者:
liusuizuoyou
时间:
2015-7-23 18:21
1. a3 是地址
2. void sortstring(char *a3[],int len) 是一个有两个参数,无返回值的函数。
3. char *a3[] 的每一个元素都是一个指针,元素的个数由实参决定。
作者:
小林儿
时间:
2015-7-23 18:26
我们还没学到呢啊!
作者:
哒哒萌
时间:
2015-7-23 18:30
明天就学指针了。听说有点难
作者:
丁铭检
时间:
2015-7-23 20:37
本帖最后由 丁铭检 于 2015-7-23 20:38 编辑
char *a[]其实就是一个字符类型的指针数组。数组a[]中存储的就是每个字符串的首地址。。。就好比a[0]其里面存储的就是字符串“wer”的首地址。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2