如何⽤scanf语句为字符指针数组赋值
指针地址是由系统⾃动分配的,想要⾃⼰指定指针地址有两种⽅法:
⼀、初始化赋值
例如:
char* p[]={"Blue","Yellow","Orange","Green","Red","black"};
此种⽅法很容易理解;
⼆、使⽤循环,对每个元素遍历输⼊:
#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++)
{
数组全部赋值为1
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语⾔教材指针部分有详细讲解;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。