给出一部分的代码,希望大神们给我解答
int n,k; //n为字符串个数,k为单个字符串需要的字节数
printf("输入字符串个数和单个字符串的字节数:%d,%d",n,k);
scanf("%d,%d",&n,&k);
char * p [n] //定义指针变量p为指向包含n个元素的一维数组
//可以发现我的语法哪里有问题吗?如果有帮我纠正一下,不胜感谢
int i;
for(i=0;i<n;i++)
{
scanf("%s",p); //主要纠结在这里,p是数组的名字,是p[0]也就是首个字符串的地址,我能这样直接赋一个char的字符串比如(I LOVE YOU)或者("I LOVE YOU")给p吗?
我只知道可以在声明定义时候整体赋值,比如:
char *p[4]={"I LOVE YOU","I LOVE me",YOU LOVE YOU","LOVE YOU"};
我知道上面这种,求大神耐心看完我的代码后能给我意见,不胜感谢
我也不是很懂
char * p [n] 定义的是字符指针,而不是字符串指针.即n个char型指针.所以不能把字符串赋值个p;
直接赋值时,p被处理成了字符数组,用来指向第一个字符.