| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1789 人关注过本帖
标题:关于指针问题的求助!
只看楼主 加入收藏
ytysgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-5-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:5 
关于指针问题的求助!
#include<stdio.h>
int longs(char *p)
{
 int i=0,n=0;
 for(i=0;*(p+i)!='\0';i++)
  n++;
 return(n);
}

int main()
{
 char *p;
 char str[100];
 int num;
 p=str;
 scanf("%s",str);
 num=longs(str);
 printf("%d",num);
 return 0;
}
///////////////////////////////////////////
#include<stdio.h>
int  length(char *p)
{
    int n=0;
    int i=0;
    for(i=0;*(p+i)!='\0';i++)
    {
    n++;
    }
    return(n);
}
int main()
{

    int len;
    char *str[20];
    printf("请输入一串字符:\n");
    scanf("%s",str);
    len=length(str);
    printf("字符长度为:%d\n",len);
    return 0;
}
这两个的区别在哪里,为什么第二个错了?求助各位大神!
2016-05-15 21:55
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:4 
第二个没有分配内存
str[0] = (char*)malloc(100*sizeof(char));
记得free哦

未佩好剑,转身便已是江湖
2016-05-15 22:34
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:4 
“数组指针”与“指针数组”
2016-05-15 23:28
huzi741
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:14
注 册:2013-1-27
收藏
得分:4 
3楼回答切中要害。回去把这两个好好看看吧
2016-05-16 13:05
d20160517
Rank: 2
等 级:论坛游民
帖 子:4
专家分:15
注 册:2016-5-17
收藏
得分:4 
char *str[20];定义的是一个字符型的数组指针,可以看成char *(str[20]);注意它的结合性,不能为它赋值字符串,
删除*程序可正常运行
2016-05-17 23:50
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:4 
回复 楼主 ytysgz
程序代码:
int main()
{

    int len;
    char *str[20];            //这里改成char str[20];即可,定义char型数组就行了,你这个写法是定义数组指针,即*(str[20])
    printf("请输入一串字符:\n");
    scanf("%s",str);
    len=length(str);
    printf("字符长度为:%d\n",len);
    return 0;
}
2016-05-18 08:34
快速回复:关于指针问题的求助!
数据加载中...
 
   



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

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