zoukankan      html  css  js  c++  java
  • 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;  
       printf("%d  ",*p);
     }
                    
       int main()
       {   
           int attr[]={1,2,3,4,5};
           int *p=attr;
       printf("%d  ",*p);
                  //    p++;
           move(p);
       printf("%d  ",*p);
        return 0;
     } 
     
    这样的话。
    #include <stdio.h>
    
    void move(int** p);
    
    int main(void)
    {
        int arr[]={34,55,26,35,64,74};
        int *p=arr;
    
        printf("%d 
    ",*p);
        move(&p);
        printf("222222222   %d 
    ",*p);
         return 0;
    }
    void move(int** p)
    {
         (*p)++;
         printf("insert %d 
    ",**p);
    }
    View Code
  • 相关阅读:
    算法基础~链表~求两个链表的交点(不考虑时间、空间复杂度)
    《人月神话》阅读笔记一
    html与css学习笔记
    新手教程
    课程信息管理
    关于文件动手动脑
    四则运算随机生成
    关于异常
    第四次动手动脑
    第三次动手动脑
  • 原文地址:https://www.cnblogs.com/qbmiller/p/4054828.html
Copyright © 2011-2022 走看看