zoukankan      html  css  js  c++  java
  • 第26课 指针的本质分析

    程序中的变量只是一段存储空间的别名,那么是不是必须通过这个别名才能使用这段存储空间?

    下面的程序输出什么?

    运行结果如下:

    i的值发生了改变,但是在程序中,我们没有直接修改i的值,这就是因为指针的操作,通过指针我们改变了i的值。

    *号的意义

    小贴士:

    指针的使用示例:

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int i = 0;
     6     int* pI;
     7     char* pC;
     8     float* pF;
     9     
    10     pI = &i;
    11     
    12     *pI = 10;
    13     
    14     printf("%p, %p, %d
    ", pI, &i, i);
    15     printf("%d, %d, %p
    ", sizeof(int*), sizeof(pI), &pI);
    16     printf("%d, %d, %p
    ", sizeof(char*), sizeof(pC), &pC);
    17     printf("%d, %d, %p
    ", sizeof(float*), sizeof(pF), &pF);
    18     
    19     return 0;
    20 }

    运行结果如下:

    传值调用与传址调用:

    利用指针交换变量:

     1 #include <stdio.h>
     2 
     3 int swap(int* a, int* b)
     4 {
     5     int c = *a;
     6     
     7     *a = *b;
     8     
     9     *b = c;
    10 }
    11 
    12 int main()
    13 {
    14     int aa = 1;
    15     int bb = 2;
    16     
    17     printf("aa = %d, bb = %d
    ", aa, bb);
    18     
    19     swap(&aa, &bb);
    20     
    21     printf("aa = %d, bb = %d
    ", aa, bb);
    22     
    23     return 0;
    24 }

    运行结果如下:

    常量与指针:

    程序示例:

    #include <stdio.h>
    
    int main()
    {
        int i = 0;
        
        const int* p1 = &i;
        int const* p2 = &i;
        int* const p3 = &i;
        const int* const p4 = &i;
        
        *p1 = 1;    // compile error
        p1 = NULL;  // ok
        
        *p2 = 2;    // compile error
        p2 = NULL;  // ok
        
        *p3 = 3;    // ok
        p3 = NULL;  // compile error
        
        *p4 = 4;    // compile error
        p4 = NULL;  // compile error
        
        return 0;
    }

    编译器报错结果如下:

    小结:

  • 相关阅读:
    服务器文档下载zip格式
    关于精度,模运算和高精的问题//19/07/14
    Luogu P2010 回文日期 // 暴力
    树形DP水题集合 6/18
    普通背包水题集合 2019/6/17
    因为时间少
    重学树状数组6/14(P3368 【模板】树状数组 2)
    Luogu P1291 [SHOI2002]百事世界杯之旅 // 易错的期望
    Luogu P4316 绿豆蛙的归宿//期望
    树剖
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9537938.html
Copyright © 2011-2022 走看看