- 论坛徽章:
- 0
|
本帖最后由 huangzhenfan 于 2012-04-15 18:31 编辑
getchar() 初步模似 main函数形参
#include <stdio.h>
#include <ctype.h>
int main (void)
{
int m=0,n=0,i=0,flag=0;
char array[20][20],c,**p;
while ((c=getchar())!='\n')
{
if (!isspace(c))
{
if (flag)
{
array[m][n]='\0';
m++;
n=0;
}
array[m][n++]=c;
flag=0;
}
else if (n>0)
flag=1;
}
array[m][n]='\0';
int *s[m]; /* 动态指针数组 */
p=s; /* "指针数组s"和"指向指针的指针变量p" 是兼容的,因为他们都指向指针变量的地址,即指向的对象大小是一致的 */
printf ("字符串个数:%d\n",m+1);
while (i<=m)
{
s[ i ]=array[ i ]; /* array 与 s不兼容,但array[0]与s[0]是兼容的,因为它们指向的对象大小是一致的*/
/* 指针数组s保证了每个元素的值与array元素值是相同的.虽然他们元素本身地址不同 */
printf ("字符串[%d]:%s\n",i,p[ i ]); /* 指向指针的指针变量p保证了他的值,与s的值(即元素的地址)相同 */
++i;
}
return 0;
}
array[20][20] 模拟输入缓冲区,* s[m]模拟缓冲区数据结构(字符串),m和**p 模拟main 形参
|
|