首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

指针数组有关问题

2012-04-09 
指针数组问题#include stdio.hvoidmain(){intlength(char*p)intlenchar*str[20]printf( pleaseinput

指针数组问题
#include <stdio.h>
void   main()
{
        int   length(char   *p);
        int   len;
        char   *str[20];
        printf( "please   input   a   string\n ");
        scanf( "%s ",str);
        len=length(str);
        printf( "the   string   has   %d   character ",len);
}
int   length(char   *p)
{
        int   n;
        n=0;
        while(*p!= '\0 ')
        {
                n++;p++;
        }
        return   n;
}
这个程序为什么,函数部分的形参是用   char   *p呢?不是应该是**p吗?应该怎么改才能正常运行呢?

[解决办法]
这段代码中声明char* str[20],明显有问题的,因为声明了一个数组指针,但是却没有分配空间,这显然是错误的。待观察题意,可以推断,char* str[20]估计是写错了,应该是char str[20].后面的代码不变,编译通过,而且结果正确。 在这里,假使char* str[20] 没有写错,首先要给他分配空间,但是此题目的仅仅是求一个字符串的长度,为何要千里迢迢设置一个char* str[20],多此一举,所以感觉是笔误。
[解决办法]
不需要用指针。

热点排行