|
发表于 2019-12-21 23:22:25
|
显示全部楼层
#include<stdio.h>
#include <stdlib.h>
int main()
{ char *a[10]; //定义一个指针数组,这个数组里面有10个元素,每个元素都是一个地址
char b[10]; //定义一个数组
scanf("%s",b);
*a=b;//给指针数组赋值
printf("%s\n",*a); //输出,
printf("%c",*(*a+2));//输出字符串中的指定字符
system("pause");
return 0;
}
/* char (*a)[10]; //定义一个数组指针,这个数组指针是一个指向有10个元素的数组的指针
char b[10];
scanf("%s",&a);
a=&b; //这个地方不能是 *a=b,不然报错说 表达式必须是可修改的左值,高手请指教下
printf("%s\n",*a);
printf("%c",*(*a+3));//输出字符串中的指定位置的字符
system("pause");
return 0;
*/
上面的指针数组和数组指针都可以满足楼主的需求
有三个疑问 1 为什么 指针数组中只能是 *a=b;而不能是 a=&b
2 为什么 数组指针中只能是 a=&b;
3 为什么这两段程序都必须要定义一个数组b[10],不定义b[10]直接使用指针进行输入输出操作会报错 |
|