当前位置: 代码迷 >> C语言 >> 我是菜鸟,我修改不了的错,麻烦看看
  详细解决方案

我是菜鸟,我修改不了的错,麻烦看看

热度:99   发布时间:2007-07-08 08:09:21.0
谢谢大家,我长知识了
----------------解决方案--------------------------------------------------------
*st1[8]有谁能解释一下,*指什么?[8]指的是什么?详细点最好。谢谢

[此贴子已经被作者于2007-7-8 8:28:53编辑过]


----------------解决方案--------------------------------------------------------
*st1[8]是一个指针数组,里面有8个元素(这8个元素都是指针),分别指向"99070101","99070102","99070103","99070104","99070105","99070106","99070107"这8个字符串,即st1[0]里装的是字符串"99070101"的首地址,st1[1]里装的是字符串"99070102"的首地址……

*符号在定义*st1[8]时就是为了表明它是一个指针数组

[此贴子已经被作者于2007-7-8 16:20:07编辑过]


----------------解决方案--------------------------------------------------------

二级指针,指向地址的地址,里边可以存放一级就是普通的指针的地址,也可以指向二维数组
如int **p,a[2][2];
p=a;
这个时候p就指向行地址就是p=&a[0]
*p指向&a[2][2],理解挺麻烦的不过你把基本普通的看会就哦了


----------------解决方案--------------------------------------------------------

谢谢各位了


----------------解决方案--------------------------------------------------------

或者是也可以
#include<stdio.h>
#include<string.h>

char *st1[8]={"99070101","99070102","99070103","99070104","99070105","99070106","99070107"};

int SeqSearch(char *k)
{
int i,j;
for(i=0;i<7;i++)
if(!strcmp(st1[i],k)) return i;
return(-1);
}

int main()
{
int k;
char ch[9];
printf("input your search number:\n");
scanf("%s",ch);
k=SeqSearch(st1,ch);
if(k+1)
{
printf("\t number\n");
printf("\t%s\n",st1[k]);
}
else
printf("NOT FIND!\n");

getchar();
getchar();

}


----------------解决方案--------------------------------------------------------

或者是 重点注意对数组元素的引用
#include<stdio.h>
#include<string.h>

char *st1[8]={"99070101","99070102","99070103","99070104","99070105","99070106","99070107"};

int SeqSearch(char *k)
{
int i,j;
for(i=0;i<7;i++)
if(!strcmp(*(st1+i),k)) return i;
return(-1);
}

int main()
{
int k;
char ch[9];
printf("input your search number:\n");
scanf("%s",ch);
k=SeqSearch(ch);
if(k+1)
{
printf("\t number\n");
printf("\t%s\n",st1[k]);
}
else
printf("NOT FIND!\n");

getchar();
getchar();

}


----------------解决方案--------------------------------------------------------

楼主学多久.会编了.
我学了两天.有一些不是很明确.


----------------解决方案--------------------------------------------------------
  相关解决方案