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

【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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版