指针地址是由系统自动分配的,想要自己指定指针地址有两种方法:
一、初始化赋值
例如:
char* p[] = { "Blue","Yellow","Orange","Green","Red","black" };
此种方法很容易理解;
二、使用循环,对每个元素遍历输入:
1.gets()
#include<stdio.h>
int main()
{
char a[81];
while (1)
{
gets(a);//a是数组名,是地址常量;每次循环后都会改变字符数组存储的字符串;
}
}
但是,此方法无法对两条及以上字符串元素同时操作;下面的方法可以灵活地使用指针元素;
2.scanf:
先用malloc函数为每一个指针元素分配内存空间;然后用scanf语句输入:
#include<stdio.h>
#include<stdlib.h>//使用malloc和free函数需要使用该文件;
int main()
{
char p[5];
int i;
for (i = 0; i < 5; i++)
{
p[i] = (char*)malloc(80);//(char*)将void指针强制转化为char类型指针;
//80代表为每一个元素申请80个字节;
if (p[i] == NULL)
exit(1);//空指针结束,可理解为固定语句;
scanf("%s", p[i]);
}
for(i=0;i<5;i++)
{
puts(p[i]);
free(p[i]);//使用后释放;
}
}
C语言教材指针部分有详细讲解;