關于對指針數組的賦值問題
給出一部分的代碼,希望大神們給我解答
int n,k;????????????????????????????????//n為字符串個數,k為單個字符串需要的字節(jié)數
printf("輸入字符串個數和單個字符串的字節(jié)數:%d,%d",n,k);
scanf("%d,%d",&n,&k);
char * p [n]????????????????????????//定義指針變量p為指向包含n個元素的一維數組
//可以發(fā)現我的語法哪里有問題嗎?如果有幫我糾正一下,不勝感謝
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"};
我知道上面這種,求大神耐心看完我的代碼后能給我意見,不勝感謝
2016-10-30
我也不是很懂
2016-08-19
char * p [n] ?定義的是字符指針,而不是字符串指針.即n個char型指針.所以不能把字符串賦值個p;
直接賦值時,p被處理成了字符數組,用來指向第一個字符.