• C语言讲义——指针(pointer)


    指针是C语言最重要的特性之一,
    也是最容易被误解的特性之一。


    现代计算机把内存分割为字节(Byte),
    每个字节都有唯一的地址(Address),
    如果内存中有n个字节,可以把地址看做0~n-1的数。

    程序中的每个变量都占据字节(至少1字节),把第一个字节的地址称为”变量的地址”,
    假设变量int i占有内存2000~2003,则变量i的地址是2000。

    指针变量(pointer variable)

    口诀:
    变量有位置,位置有地址
    指针是变量,其值为地址

    指针就是地址,指针变量就是存储地址的变量。
    C语言要求每个指针变量只能指向一种特定的类型的对象。

    int *p;
    double *q;
    char *r;
    

    指针变量的赋值:

    int i=2099;
    int*  p;
    P = &i;
    printf("%d", *p);
    

    值和地址

    &取地址运算符
    *间接寻址运算符

    下例中:

    i是普通变量,&i是存储变量的地址
    p是指针,是地址,*p是指针指向地址的值

    #include <stdio.h>
    main() {
        int  i=2099;
        printf("变量的值:%d
    ", i  );
        printf("变量的地址:%x
    ", &i  );
    
        int *p;
        p = &i;
        printf("指針(值):%d
    ", *p  );
        printf("指針(地址):%x
    ", p  );
    }
    

    NULL指针

    在变量声明时,如果没有确切的地址可赋值,为指针变量赋一个NULL值是一个良好的编程习惯。
    赋为NULL值的指针称为“空指针”。

    #include <stdio.h>
    int main(int argc, char *argv[]) {
    	int  *ptr = NULL;
    	printf("ptr的值是:char=%x, int=%d
    ",ptr,ptr);
    
    	return 0;
    }
    

    运行结果:

    ptr的值是:char=0, int=0
    
  • 相关阅读:
    数据库之事务与常见故障
    数学的魅力 之 正多边形
    html5 的基础理解1
    android 引入开源项目
    android 图片查看器
    java 线程安全
    python3 自动生成requirement.txt
    centos 7 安装 python3.7
    python3 创建,激活虚拟环境
    Mac 配置poetry
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11191576.html
Copyright © 2020-2023  润新知