年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2032|回复: 0

一个经典的例子说明针指的用法

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2014-3-5 10:08:32 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2014-3-5 10:12 编辑
    1. /*
    2. 通过运算符"*"访问指针值与运算符"&"取值指针,来理解C语言中指针的基本使用方法
    3. 1、定义一个int型变量,分别打印其值与指针地址;、
    4. 2、定义一个指针变量,并将上面的地址赋值给该变量,打印其值、其值(指针)所指向的值、以及自身的地址;
    5. 3、定义一个二级指针变量,并将上面(指针类型的值)的指针赋值给该变量, 打印其值、其值(二级指针指针)所指向的值、其值所指向的值(指针)所指向的值、以及自身的地址;
    6. */
    7. #include <stdio.h>
    8. #include <stdlib.h>
    9. int main() {
    10.    
    11.     int a = 10;  // 定义一个int型变量a 赋值为10
    12.     printf(" a = %d\n", a);  // 打印a的值
    13.     printf("&a = %p\n", &a);  // 打印a的地址
    14.     printf("\n");
    15.    
    16.     int *p = &a;  // 定义一个int型的指针(int *)变量p 赋值为a的地址
    17.     printf(" p = %p\n", p);  // 打印p的值,即a的地址
    18.     printf("*p = %d\n", *p);  // 打印p所指向的值,即a的值
    19.     printf("&p = %p\n", &p);  // 打印p自身的地址
    20.     printf("\n");
    21.    
    22.     int **pp = &p;  // 定义一个指针类型的指针( (int *)* --> int ** )变量pp 赋值为p的地址,即保存a地址变量的地址
    23.     printf("pp = %p\n", pp);  // 打印pp的值,即打印保存a地址变量的地址
    24.     printf("*pp = %p\n", *pp);  // 打印pp所指向的值,即a的地址
    25.     printf("**pp = %d\n", **pp);  // 打印pp所指向的值(a的地址)所指向的值(即a的值)
    26.     printf("&pp = %p\n", &pp);  // 打印pp自身的地址
    27.    
    28.     system("pause");
    29.    
    30.     return 0;
    31.    
    32.     }
    复制代码
    输出结果:
    1. a = 10
    2. &a = 0022FF44
    3. p = 0022FF44
    4. *p = 10
    5. &p = 0022FF40
    6. pp = 0022FF40
    7. *pp = 0022FF44
    8. **pp = 10
    9. &pp = 0022FF3C
    复制代码


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-5-4 03:56 , Processed in 0.049604 second(s), 23 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表