QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 780|回复: 9

c程序求解!!!

[复制链接]
发表于 2005-4-11 15:02:58 | 显示全部楼层 |阅读模式
[code:1]
main()
{
typedef char CA3[2][2][2];
typedef CA3 *PCA3;
typedef char CA2[2][2];
typedef CA2* PCA2[2];

CA3 ca3={'A', '\0', 'B', '\0', 'C', '\0', 'D', '\0'};
PCA3 pca3 = &ca3;
PCA2 pca2={ca3, ca3+1};

int i=0,j=0;
for(i=0; i<2; i++)
{
printf("\n");
printf("%s\n", (char*)pca3[0][i]);
printf("%s\n", (*(pca2+i))[0][1]);
for(j=0; j<2; j++)
{
putchar(*(*(ca3+i)+j)[0]);
putchar(' ');
}
}
}
求输出的结果是:_____________________[/code:1]
发表于 2005-4-11 15:14:38 | 显示全部楼层

呵呵,不想动脑筋的话,直接用c compile一下不就行了。

A
B
A B
C
D
C D
回复

使用道具 举报

 楼主| 发表于 2005-4-11 17:48:35 | 显示全部楼层
printf("%s\n", (*(pca2+i))[0][1]); 请哪位给我讲一下这句的输出为什么一次是B一次是D,我怎么老觉得他应该两次都是0/呀!
回复

使用道具 举报

 楼主| 发表于 2005-4-12 08:28:36 | 显示全部楼层
我有查了一下基础的c教程,原来\0是无效字符,因此'A','\0'两个就组成了一个字符串"A\0",同样"B\0","C\0","D\0",这样(*(pca2+i))[0][1]);当i=0时在{"A","B"}这个二维数组中就是指B,同样当i=1时在{"C","D"}就是指D,不知道这样理解对不对?
由于我在单位,机子上没有编译程序,为了验证我的看法,哪位帮一下我,把
CA3 ca3={'A', '\0', 'B', '\0', 'C', '\0', 'D', '\0'}; 这一行中的ca3改成ca3={'A','W','B',X','C','Y','D','Z'};然后编译运行再贴出结果来看看,拜托了!!!
回复

使用道具 举报

发表于 2005-4-12 10:00:56 | 显示全部楼层
A
B
A B
C
D
C D
回复

使用道具 举报

 楼主| 发表于 2005-4-12 14:40:11 | 显示全部楼层
大家不够热情,不帮我解释!!!
回复

使用道具 举报

发表于 2005-4-12 16:33:11 | 显示全部楼层
你不够勤快。
回复

使用道具 举报

发表于 2005-4-13 22:12:44 | 显示全部楼层
问题似乎并诶这默简单,我给你QQ里发了消息
我现在被空字符搞乱了       
回复

使用道具 举报

发表于 2005-4-13 22:14:32 | 显示全部楼层
但就原题讲,应该之你所说的这样
回复

使用道具 举报

发表于 2005-4-13 22:15:30 | 显示全部楼层
我头大了......                     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 07:18 , Processed in 0.064983 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表