|
1
7
对。 顺便说一下,这是C++。您已经将“s”作为对函数的引用传递给了main,该函数将对其进行修改。因为它是一个引用,而不是一个副本,所以它会影响调用方的“s”。 |
|
|
2
6
在第一次测试中
,您正在指示编译器
复制
价值
在第二次测试中
将一个指针赋给另一个指针,这两个指针都声明为局部变量。这没什么用——价值在
|
|
|
3
1
阅读此: Default copy-constructors and assignment operators 如果不提供赋值运算符,则结构在赋值时将对其所有成员执行浅拷贝。因为您按值存储所有数据,所以所有数据都是按值复制的。 您所描述的问题是何时保存数据指针。 在这种情况下:
这将导致一个问题,因为t_t将在test()结束时被销毁,此时指针将无效。 埃塔:因为你增加了更多的问题…
您在这里创建了一个不同的问题。这里发生的是你创建了一个指向S.T地址的指针,这很好。但是,您已经将该指针重新分配到X点(此分配对S.T没有任何作用,您只是更改了指针pt指向的内容) 输出“如预期”的原因是因为您只是在读取结构的未初始化状态。 |
|
|
4
0
你说得对,台词
将复制值。 |
|
|
5
0
asignment将值从一个变量复制到另一个变量。所以,虽然原始的本地X不见了,但在S中有一个副本。 当你刚给x分配了一个指针时,情况会大不一样:
那么你会有一个问题:你只有x的地址,但是x不见了。因此,您实际上引用了一个无效的内存位置。那么这个程序的行为将是未定义的。 |