首页 > 代码库 > c++指针 c指针 改变值

c++指针 c指针 改变值

1.
#include <iostream>

using namespace std;

void move(int *p)    ====>void move(*&p)
{

    p++;
}

int main()
{
    int attr[]={1,2,3,4,5};
    int *p=attr;
    cout<<*p<<endl;
//    p++;
    move(p);
    cout<<*p<<endl;
    return 0;
}


为什么第二次打印 值不变 ,指针也是变量,传指针是可以改变值,但你这里 :改变的是指针值(地址),没有改变指针指向的值
换成move(*&p) 可破
2.c语言写的这个
 #include <stdio.h>
void move(int* p) 
{

    ++p;   =======>(*p)++;
   printf("%d \n",*p);
 }
                
   int main()
   {   
       int attr[]={1,2,3,4,5};
       int *p=attr;
   printf("%d \n",*p);
              //    p++;
       move(p);
   printf("%d \n",*p);
    return 0;
 } 
 
这样的话。

c++指针 c指针 改变值