- 论坛徽章:
- 0
|
对下面2个小程序的结果有点疑惑,请教各位为什么会出现这种差别,谢谢.
环境为AIX5.0 GCC编译器.
先看程序
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- char ca[102]
- char cb[51]="aa";
- char cc[51]="a";
- printf("%d",strlen(a));
- strcpy(ca,cb);
- strcat(ca,cc);
- printf("%d",strlen(a));
-
- return 0;
- }
复制代码
结果为0,102.而下面的那个结果为0,3,想不明白为什么会出现这样的差别.
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- struct tt{
- char ca[102]
- char cb[51];
- char cc[51];
- }tt_d;
- memset(&tt_d,0,sizeof(tt_d));
- strcpy(tt_d.cb,"aa");
- strcpy(tt_d.cc,"a");
- printf("%d",strlen(tt_d.ca));
- strcpy(tt_d.ca,tt_d.cb);
- strcat(tt_d.ca,tt_d.cc);
- printf("%d",strlen(tt_d.ca));
-
- return 0;
- }
复制代码
[ 本帖最后由 iamfog 于 2006-9-17 20:23 编辑 ] |
|