关于数据结构中的疑问?for(i=0,c=chars;c;++i;++c):
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/23 06:52:14
关于数据结构中的疑问?for(i=0,c=chars;c;++i;++c):
Status StrAssign(HString &T,char * chars)
{
\x05if(T.ch) free(T.ch);
\x05for(i=0,c=chars;c;++i,++c); //求chars的长度i\x05
if(!i){T.ch=NULL;T.length;}
\x05else
\x05{
\x05\x05if(!T.ch=(char*)malloc(i*sizeof(char))))
\x05\x05\x05exit(OVERFLOW);
\x05\x05T.ch[0..i-1]=chars[0..i-1];
\x05\x05T.length=i;
\x05}
\x05return OK;
}
i){T.ch=NULL;T.length;}中的(!i)以及后面的T.ch还有
for(i=0,c=chars;c;++i,++c); 中的i=0,c=chars;c:
Status StrAssign(HString &T,char * chars)
{
\x05if(T.ch) free(T.ch);
\x05for(i=0,c=chars;c;++i,++c); //求chars的长度i\x05
if(!i){T.ch=NULL;T.length;}
\x05else
\x05{
\x05\x05if(!T.ch=(char*)malloc(i*sizeof(char))))
\x05\x05\x05exit(OVERFLOW);
\x05\x05T.ch[0..i-1]=chars[0..i-1];
\x05\x05T.length=i;
\x05}
\x05return OK;
}
i){T.ch=NULL;T.length;}中的(!i)以及后面的T.ch还有
for(i=0,c=chars;c;++i,++c); 中的i=0,c=chars;c:
StrAssign是个字符串的赋值操作.
首先要知道串的堆分配存储表示
typedef struct {
char *ch;
// 若是非空串,则按串实际长度分配存储区,否则 ch 为NULL
int length; // 串长度
} HString;
for(i=0,c=chars;c;++i,++c); //求chars的长度i
这个for循环是为了求出指针变量chars所指的字符串所包含字符的个数(即长度).i就是记录长度的计数器,所以初始值是0,即(i=0).变量c应该是个指向字符的指针变量,c=chars就是让c指向字符串chars的第一个字符,而c;这个表达式相当于c!=‘\0’,也就是c所指的字符不是空字符,也就是字符串没有结束.
if(!i){T.ch=NULL;T.length;}
!i 相当于i==0 ,也就是字符串chars的长度为0,此时就是将空串chars赋值给T,所以串T的存储空间基址ch是空(NULL).
再问: for(i=0,c=chars;c;++i,++c); 中间的c还是不太理解啊,老师讲的是判断条件,搞不懂是什么判断条件,判断的是什么啊?谢谢
再答: c是判断条件,就是判断字符串有没有结束。我们知道在c语言中字符串是以‘\0’做为结束标志的。如果这个指针c指向的字符不是结束符,那么长度i就加1,否则就退出循环了。 for(i=0,c=chars;c;++i,++c); 相当于 int i; char *c; for(i=0,c=chars;*c !='\0';++i,++c) ; 希望你能明白,呵呵
首先要知道串的堆分配存储表示
typedef struct {
char *ch;
// 若是非空串,则按串实际长度分配存储区,否则 ch 为NULL
int length; // 串长度
} HString;
for(i=0,c=chars;c;++i,++c); //求chars的长度i
这个for循环是为了求出指针变量chars所指的字符串所包含字符的个数(即长度).i就是记录长度的计数器,所以初始值是0,即(i=0).变量c应该是个指向字符的指针变量,c=chars就是让c指向字符串chars的第一个字符,而c;这个表达式相当于c!=‘\0’,也就是c所指的字符不是空字符,也就是字符串没有结束.
if(!i){T.ch=NULL;T.length;}
!i 相当于i==0 ,也就是字符串chars的长度为0,此时就是将空串chars赋值给T,所以串T的存储空间基址ch是空(NULL).
再问: for(i=0,c=chars;c;++i,++c); 中间的c还是不太理解啊,老师讲的是判断条件,搞不懂是什么判断条件,判断的是什么啊?谢谢
再答: c是判断条件,就是判断字符串有没有结束。我们知道在c语言中字符串是以‘\0’做为结束标志的。如果这个指针c指向的字符不是结束符,那么长度i就加1,否则就退出循环了。 for(i=0,c=chars;c;++i,++c); 相当于 int i; char *c; for(i=0,c=chars;*c !='\0';++i,++c) ; 希望你能明白,呵呵
关于数据结构中的疑问?for(i=0,c=chars;c;++i;++c):
C语言,for(i=0;i
请解释一下C语言中的 for(--i;i>=0;i--) 的意思.
C语言中,for(i--;i>=0;i--)是什么意思?
问C中for区别:for(i=0;i
C语言for(i=0;(c=getchar())!='\n';i+=c)中,
数据结构 (c++)中LOC(i,j)=LOC(0,0)+(bi*i+j)L啥意思
c语言设初始值中for(i=0;i
C语言程序提问.for(i=0;i
C语言,for(;i
C语言 关于for(i=n-1;i>=0;i--)这个以及以下的这些是什么意思?
C++for循环为什么一定要定义i=0