妹妹问我的二级C的两个问题。谁能详细解答?

lfzbg 2003-09-01 09:36:37
1 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;

则执行表达式(m=a>b)&&(n=c>d)后,n的值为(2) 为什么?
2 若有以下的说明和语句, 则在执行for语句后,*(*(pt+1)+2)表示的数组元素是t[1][2]

int t[3][3], *pt[3], k;

for(k=0;k<3;k++) pt[k]=&t[k][0];

*(*(pt+1)+2)是什么意思.
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcpsoftware 2003-09-17
  • 打赏
  • 举报
回复
shw014 2003-09-02
  • 打赏
  • 举报
回复
m=a>b 结果为假,按C语言的定义 逻辑与(&&) 后面的表达式不再计算,即所谓的短路运算
alpha15 2003-09-01
  • 打赏
  • 举报
回复
因为n定义的是整型变量且赋值为2,结果当然是2
bankhank 2003-09-01
  • 打赏
  • 举报
回复
n=0;
这里pt表示的是pt[]数组的指针*(pt+1)为数组pt[1];
而pt[]数组的值是数组t[][]的每行开始的指针
所以pt[1]的值是&t[1][0]
*(pt+1)+2是t[1][2]的指针

2,959

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧