递增复制的指针也会增加原始值吗?

时间:2014-11-12 23:54:19

标签: c pointers

在C中,如果你有这样的东西:

int obj = 5;
int * ptr = &obj;
int * ptr2 = ptr;
ptr2++;

ptr也会增加,还是只增加ptr2?我想我得到的是,如果从主要指针中分配第二个指针,那么执行函数操作是一种很好的方法,可以在不弄乱第一个指针的位置的情况下执行此操作。这是我正在编辑多个功能的项目。我可以访问指向对象的指针,但不能访问对象本身。

3 个答案:

答案 0 :(得分:1)

第一个指针(ptr)将不受影响,因为您要将第二个ptr(ptr2)设置为第一个(&obj}的值ptr ),就像你有以下代码一样:

int a = 1;
int b = a;
b++;

只有b会增加,而不是a

答案 1 :(得分:1)

如果您复印一张纸并刻录副本,原件是否会永远丢失?

当然不是!


  • 如果我们在C中讨论指针或其他对象,则上述内容不会改变。
  • 虽然创建一个指向一个对象的指针是可以的,但这可能不是你想要做的那样。
  • 当然,将指针复制到对象对该对象没有影响,它不会被复制。
  • 另外,你指向某个对象的哪个指针并不重要,它们都会以同样的方式看待它们(如果它们具有相同的类型,自然而然)。

答案 2 :(得分:0)

您仅更改了ptr2的值。 ptr仍然保留obj的地址。

相关问题