美文网首页十天学会C语言
第08天C语言(09):指针-基本概念

第08天C语言(09):指针-基本概念

作者: liyuhong | 来源:发表于2017-07-10 23:21 被阅读62次
    一、概念
    /*
     如何定义指针变量
         普通变量
         数据类型 变量名称;
         指针变量
         数据类型 * 变量名称;
         数据类型 : 说明 将来指针变量能够保存 什么类型的变量的地址
         注意 : 指针变量是什么类型 : 那么将来就只能保存什么类型的变量的地址
         例如 : 指针变量是int, 那么将来就只能保存 int类型变量的地址
         * : 没有任何特殊含义, 仅仅是为了标识 这是一个指针变量
         变量名称 : 用于区分不同的变量
     
         int num; // 普通变量     num = 10;
         int * p; // 指针 , 在64位的编译器下 占用8个字节
         p = # // 将num的地址 存储到p这个地址中
         (重点 : p = &num --- *p == num)
     */
    
    二、代码
    #include <stdio.h>
    
    // 基本数据类型 作为函数的参数 是值传递, 在函数中修改形参的值 不会影响到 外面实参的值
    void change(int vlaue)
    {
        vlaue = 55;
    }
    
    // 数组作为函数的参数 是地址传递,如果是地址传递 在函数中修改 形参的值 会改变影响到外面实参的值
    void change2(int vlaue[])
    {
        vlaue[1] = 55;
    }
    
    #pragma 指针
    // 指针就是专门用于保存地址的
    void change3(int *p) //用什么接收地址? 指针 = 0ffc12
    {
        *p = 33;
    }
    
    int main()
    {
    #pragma 1.需求 : 定义一个方法,在方法中修改传入的实参的值
        /*
    //    int num = 10;
        int num[] = {1,3};
        printf("修改前 num = %i\n",num[1]);
        change2(num);
        printf("修改后 num = %i\n",num[1]);
         */
        
        int num = 10;
        printf(" 前 num = %i\n",num);
        change3(&num);
        printf(" 后 num = %i\n",num);
        
        /*
         如何定义指针变量
         普通变量
            数据类型 变量名称;
         指针变量
            数据类型 * 变量名称;
            数据类型 : 说明 将来指针变量能够保存 什么类型的变量的地址
                     注意 : 指针变量是什么类型 : 那么将来就只能保存什么类型的变量的地址
                     例如 : 指针变量是int, 那么将来就只能保存 int类型变量的地址
            * : 没有任何特殊含义, 仅仅是为了标识 这是一个指针变量
            变量名称 : 用于区分不同的变量
         */
        
        /*
        int num; // 普通变量
        num = 10;
        int * p; // 指针 , 在64位的编译器下 占用8个字节
        // 千万注意 : 指针变量 只能存储地址
        p = # // 将num的地址 存储到p这个地址中
        
        // p = &num
        printf("num = %p\n",&num);
        printf("p = %p\n",p);
        
        // 指针变量前的 *号 代表访问指针变量 指向的那一块存储空间(num)
        // *p == num
        *p = 55;
    //    printf("num = %i\n",num);
        printf("num = %i\n",*p);
         */
        
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:第08天C语言(09):指针-基本概念

        本文链接:https://www.haomeiwen.com/subject/jatphxtx.html