美文网首页十天学会C语言程序员
C语言day08-09指针-基本概念

C语言day08-09指针-基本概念

作者: liyuhong165 | 来源:发表于2016-05-02 16:59 被阅读95次

    pragma mark 指针-基本概念

    pragma mark 概念

    /**
     指针就是用来保存地址的
     1.什么是地址
     生活中的地址
     北京市朝阳区朝阳区大悦城8楼肯德基
     */
    

    pragma mark 代码

    #include <stdio.h>
    // 基本数据类型作为函数的参数是值传递,在函数中修改形参的值不会影响到外面实参的值
    void change (int value) // int value = 10;
    {
        value = 22;
        printf("我执行了\n");
    }
    // 数组作为函数的参数是地址传递,如果是地址传递在函数中修改形参的值会影响外面实参的值
    void change2 (int values[])
    {
        values[1] = 99;
        printf("哥执行了\n");
    }
    
    // 指针就是专门用于保存地址的
    void change3(int *p) // 用什么接收地址  指针 = 0ffc01 int *p = &num
    {
        *p = 88;
        printf("哥执行了\n");
    }
    
    int main()
    {
    #warning 值传递
        /*
        // 需求:定义一个函数,在函数中修改传入的实参的值
        int num = 10;
        printf("修改前:num = %i\n",num);
        change(num);
        printf("修改后:num = %i\n",num);
         */
        
    #warning 数组传递(指针传递)__(地址传递)
        /*
        int nums[] = {1,3};
        printf("修改前:num = %i\n",nums[1]);
        change2(nums);
        printf("修改后:num = %i\n",nums[1]);
         */
    
    #warning 指针知识
        int num = 10;
        // *p == num
        printf("修改前:num = %i\n",num);
        change3(&num);
        printf("修改后:num = %i\n",num);
    #warning 1.指针变量定义
        /*
         
         如何定义指针变量
         普通变量:
         数据类型 变量名称
         指针变量:
         数据类型 * 变量名称;
         
         数据类型 : 说明将来指针变量能够保存什么类型的变量的地址
                    注意 : 指针变量是什么类型,那么将来就只能保存什么类型变量的地址, 
                    例如 指针变量是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);
    
        // 千万注意 : 指针变量只能存储地址
        // 通过指针变量 赋值
        // 指针变量前的*号代表访问指针变量指向的那一块存储空间
        // *p == num
    //    num = 20;
        *p = 33;
        printf("num = %i\n",*p);
         */
        
        
        return 0;
    }
    
    

    相关文章

      网友评论

        本文标题:C语言day08-09指针-基本概念

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