你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【1.28签到】每日问答——下列程序输出结果是什么?    关闭

[复制链接]
苏柚 提问时间:2016-1-28 08:41 /
收藏 评论97 发布时间:2016-1-28 08:41
97个回答
creep 回答时间:2016-1-28 08:46:36
                                    
ptiinngg 回答时间:2016-1-28 09:48:59
本帖最后由 ptiinngg 于 2016-1-28 10:06 编辑
潇潇雨歇pku 发表于 2016-1-28 09:10
TArr是一个指针,指向int[2]数组,大概相当于n行2列的数组。
unsigned int (*TArr)[2] = (unsigned int (*) ...

很明显是打印两个1~20的数组
以及一个 hellow world

所以问题应该不是在於输出结果,而是程序本身
应该是想表明可以用这种方式黏贴并宣告数个数组
也许用这种方式表达只是想告诉你差异?

改成这样或许容易懂些?
1: printf("TArr[%d][%d] = %d\n",row,col,(unsigned int (*)[0])TArr[row][col]);
2: printf("TArr[%d][%d] = %d\n",row,col,(unsigned int (*)[1])TArr[row][col]);

如果不特意标明,只的一般是数组的第一项地址。
所以 2 只是想证明这种方式是可以运行的

这是我的理解,不晓得对否?
潇潇雨歇pku 回答时间:2016-1-28 09:10:23
TArr是一个指针,指向int[2]数组,大概相当于n行2列的数组。
unsigned int (*TArr)[2] = (unsigned int (*)[2])Arr;
这句代码就是把Arr的地址赋给TArr指针,但是直接赋值会出错,所以要把Arr强制转换成TArr同等类型。
所以第一次输出是1~20毫无疑问。
然后第二次输出,把unsigned int强制转换成unsigned int (*)[1],即指向一个元素的数组的指针,我就不理解是想表达什么了。
me浩 回答时间:2016-1-28 19:06:37
定义程序目标
       设计程序
       编写程序代码
       编译程序
       运行程序
       测试和调试程序
       维护和修改程序
zhoupxa 回答时间:2016-1-28 08:50:01
一时分析不出来,看来得在电脑上运行一下看了
netlhx 回答时间:2016-1-28 08:50:36
没看懂
chifen 回答时间:2016-1-28 08:52:02
这个要运算的,暂时算不出来
qiu-368230 回答时间:2016-1-28 08:52:46
签到   签到   
#define 回答时间:2016-1-28 08:52:55
智商不够了                     
dream12 回答时间:2016-1-28 08:55:25
先签下到
Paderboy 回答时间:2016-1-28 08:58:55
wujianwei3980-5 回答时间:2016-1-28 08:59:10
签到啊。。。。。。。。。。。。。。。
JackieLaura 回答时间:2016-1-28 09:00:43
每日签到
stmcu.org.png
Hello小楠 回答时间:2016-1-28 09:01:32
等待大神解答。我有个问题:H桥驱动电机时,PWM分别为高和低时电流的回路和反向电动势的方向。
netlhx 回答时间:2016-1-28 09:01:45
两个都是输出二维数组的值,最后输出HELLO, WORLD
阿里晨 回答时间:2016-1-28 09:05:51
签到
ersha4877 回答时间:2016-1-28 09:06:09
戏如人生 回答时间:2016-1-28 09:06:10
签到来了 早上好 各位

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版