标题:gets(p),*p是指针,输入字符串后字符串内容能存入指针吗?
只看楼主
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:12 
回复 20楼 邵蜜柚
应该没有一维指针的说法,即使**p我也觉得说成指针的指针更准确;维数是对数组而言的,数组可看成相同数据类型的集合,是组织数据的一种方式。指针就是一种特殊的变量类型,唯一和它挂钩的是他指向的数据类型,所以会产生int *p和char *p的区别,作为p来说,他们类型一样,但*p类型不一样。你所说的p初始指向str1[0]没错,只是后来他指向哪了取决于函数gets的操作,是gets最后把他指向改了,写了个模拟gets函数功能的函数getstr放在你程序里,和你原来的运行结果一样,你应该从中可以看出缘由的,代码如下:

#include<stdio.h>
void getstr(char *p)
{
    char a;
    while((a=getchar())!='\n')
    {
        *p=a;
        p++;
    }
    *p=0;
}
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);
}
void main()
{ char str1[81],str2[81],*p1=str1,*p2=str2;
  getstr(p1);getstr(p2);printf("%d\n",strle(p1,p2));//p1和p2都是指针,指向字符串首地址,输入qwerty到底是怎么分配内存的?能存指针里吗?
}


[ 本帖最后由 wmf2014 于 2015-2-28 07:42 编辑 ]

能编个毛线衣吗?
2015-02-28 07:20
邵蜜柚
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.211472 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved