C语言笔记:指针

目录

指针的定义

指针的运算

字符串常量指针


指针的定义

*p

指针存放变量的地址所对应的内容

P

该指针所存放变量的地址

&p

指针的地址

  • 用指针的访问是间接访问
  • int *p; *p=2; 这是错误的,指针为非初始化指针,没有指向的内存
  • char *message =“hello”; 定义了指向该字符串的指针
    • 等同于: char *message; message=“hello”;
  • **p:指向指针的指针,存放的是指针的地址
  • 空指针
    • 定义:值为 0 的整型常量表达式,或强制(转换)为“void*”类型的此类表达式,称为空指针常量
      • 定义空指针

        int *p;

        p=0;

        p=(void*)0;

        p=0l;

        p=3-3;

      • NULL:头文件中,NULL为一个宏定义,指向 define NULL 0。

                                int *p = 0;

                                int *p = NULL; //如果有这个定义这两个表达式等价

        ​​​​​​​ 某些系统会将空指针定义在某个区域,即非零空指针。故此空指针不代表其地址一定为0,而NULL赋值后的指针其地址一定为0;

指针的运算

*p++==0

先判断指针内容是否为0,在将指针指向下一个即  先用后加

*++P==0

先将指针指向下一个再取其地址的值,判断是否为哦。即 先加后用

字符串常量指针

“abc”[2]

指针指向“c”

*"abc"

对字符串指针进行间接访问,其结果是“a”

“abc”+1

讲指针地址增1,指针指向b

应用:

  • 有选择性的打印字符串

        printf("%s","abcdefghijk"[n]); //n为要打印的英文字母

  • 选择要打样的数量

        printf("%s","**********"+n); //要打印数量为 10-n,n为指针移动的数量,即减少的数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值