标题:gets(p),*p是指针,输入字符串后字符串内容能存入指针吗?
取消只看楼主
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
结帖率:100%
已结贴  问题点数:20 回复次数:6 
gets(p),*p是指针,输入字符串后字符串内容能存入指针吗?
若运行时从键盘输入字符串qwerty<回车>和abcd<回车>,则程序的输出结果是?
程序代码:
#include<string.h>
#include<stdio.h>
strle(char a[],char b[])
{ int num=0,n=0;
  while(*(a+num)!='\0')num++;
  while(b[n]){*(a+num)=b[n];num++;n++;}
  return(num);
}
main()
{ char str1[81],str2[81],*p1=str1,*p2=str2;
  gets(p1);gets(p2);printf("%d
",strle(p1,p2));//p1和p2都是指针,指向字符串首地址,输入qwerty到底是怎么分配内存的?能存指针里吗?
}
搜索更多相关主题的帖子: qwerty 字符串 键盘 
2015-02-27 10:17
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
while(*(a+num)!='\0')num++;



↓↓

[ 本帖最后由 邵蜜柚 于 2015-2-27 10:20 编辑 ]

请给你男神一个爱你的理由。
2015-02-27 10:19
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
while(*(a+num)!='\0')num++;

请给你男神一个爱你的理由。
2015-02-27 10:19
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
回复 4楼 执笔画江山
gets函数是从终端键盘读入字符串,p1指向str1首地址,qwerty中的q肯定是存入了str1[0]中,那w按道理是存入str[1]中,可是*p是一维指针,指向str1[0],再输入werty的时候,就没有存储的地方了呀?总不能存入指针里吧?没位置存放了啊?

请给你男神一个爱你的理由。
2015-02-27 11:14
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
回复 6楼 wmf2014
运行结果是10。
不理解为什么等效呢?p1指向str1[0],存储了q,那w用指针怎么表示,不能说移动了指针,指针又指向了str1[1]吧?

请给你男神一个爱你的理由。
2015-02-27 11:17
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
回复 18楼 wmf2014
大神等等!
我还没明白是怎么一回事。gets函数是从终端键盘读入字符串,p1指向str1首地址,qwerty中的q肯定是存入了str1[0]中,那w按道理是存入str[1]中,可是*p是一维指针,指向str1[0],再输入werty的时候,就没有存储的地方了呀?总不能存入指针里吧?没位置存放了啊?

请给你男神一个爱你的理由。
2015-02-27 22:40
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
得分:0 
回复 21楼 wmf2014
简直太感谢你了!!

请给你男神一个爱你的理由。
2015-02-28 10:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442221-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.191650 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved