关于C语言指针指向字符数组的问题?
答案:2 悬赏:20
解决时间 2021-03-04 00:34
- 提问者网友:你在我心中是最美
- 2021-03-03 00:51
char str0[3][20],*p,*q;
q=str0;
printf("please write %d string:\n",N);
for(p=q;p for(p=q;p
这是标准答案上的,怎么跟我需要要的结果不一样
输入:
a
b
c
得到:
abc
bc
c
我想要的是:
a
b
c
补充说明下N为3
最佳答案
- 二级知识专家网友:丢不掉的轻狂
- 2021-03-03 01:02
程序写错了,指针所指的位置不对,改成这样:
void main()
{
int N=3;
char str0[3][20],*p,*q; ;
q=str0[0];
printf("please write %d string:\n",N);
for(p=q;p
for(p=q;p
system("pause");
return;
}
这样写的程序最多接受3个字符串,每个字符串最大长度为20,不如使用c++里的vector和string,多大多长都可以
#include
#include
#include
using namespace std;
void main()
{
int N=3; //N可以为任意值
vector vec;
string temp;
printf("please write %d string:\n",N);
for(int i=0;i>temp;vec.push_back(temp);}
for(int i=0;i
system("pause");
return;
}
全部回答
- 1楼网友:一起来看看吧
- 2021-03-03 02:35
一楼正解。
pa[2]是一个指向字符串"ccc”的指针;
*pa[2]是取字符串"ccc“的首个元素,等价于pa[2][0].
int main(int argc, char *argv[])
{
char *pa[3] = {"a", "bb", "ccc"};
printf("pa[2] = %s\n", pa[2]);
printf("&pa[2] = %x\n", &(pa[2]));
printf("*pa[2] = %c\n", *pa[2]);
printf("pa[2][0] = %c\n", pa[2][0]);
return 0;
}
输出:
[root@localhost test]# ./a.out
pa[2] = ccc
&pa[2] = bffeebcc
*pa[2] = c
pa[2][0] = c
我要举报
大家都在看
推荐资讯