我对以下代码有一些疑问。
window.location.replace(([baseUrl, somethingElse] as string[]).join("\n"))
window.location.replace((<string[]>[baseUrl, somethingElse]).join("\n"))
代表什么(ptr是某种类型的指针)?该程序的输出应该为window.location.replace(((): string[] => [baseUrl, somethingElse])().join("\n"))
,但我不确定为什么,我的问题出在行ptr[3]
上,我不知道该行如何改变to be or not to be (Hamlet)
数组的第三个元素。
(&ptr2)[3] = str
使用this可视化工具,我们可以看到ptr1指向str,我只是不明白为什么会这样。
帮助表示赞赏。
答案 0 :(得分:2)
如果我有某种类型的指针,那么使用数组索引是什么意思?在此示例中,ptr [3]代表什么(ptr是某种类型的指针)?
在C中,a[i]
是*(a + i)
的语法糖。即使指针没有指向数组,这也是有效的语法。
该程序的输出应该是(Hamlet),但我不确定为什么,我的问题是行(&ptr2)[3] = str,我不知道该怎么做这行更改了ptr1数组的第三个元素。
第(&ptr2)[3]
行在str1
中没有任何改变。它尝试访问未知的内存位置。
如果告诉您该程序的输出应该是“(是或不是)(哈姆雷特)”,那么您被告知是错误的。