计算机二级。有关二维数组的。不懂的我都注释在源代码上了

[复制链接]
查看11 | 回复2 | 2011-3-19 21:07:22 | 显示全部楼层 |阅读模式
#include
main()
{
char ch[2][5]={"1234","5678"},*p[2];
int i,j,s=0;
for(i=0;i'\0';j+=2)//这一步我也看不懂p[j]>指向‘0/’啥意思啊
{
s=p[j]-'0';//这个也解释下!

printf("%d",s);
}
}
}

回复

使用道具 举报

千问 | 2011-3-19 21:07:22 | 显示全部楼层
这个是输出一个二维数组的程序,你说的第一个,p=ch; p是一个指针,这个赋值表示让p这个指针指向二维数组的第i行。p[j]>‘\0’表示指针指的第i行第j列不是第i行的最后一位。最后,你的那个s=p[j]-'0'; 你原先定义的二维数组是一个字符型的,计算机在进行字符型运算的时候会把它变成ASC码,0的ASC码为48,而p[j],假设为'5'的话,ASC码为53,53-48,求其差值就能得到想要的p[j]的整数,也就是整数5,s是整数型的嘛,把整数5赋值给整数型的变量s
回复

使用道具 举报

千问 | 2011-3-19 21:07:22 | 显示全部楼层
第一个地方p 里存放ch[]的第i行的第一个单元地址第二个地方'\0' 是ASCII码字符'0'的值第三个地方是计算s 里的内容对应的是那个数字 ,然后显示它
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行