zoukankan      html  css  js  c++  java
  • C指针总结

    取内容* 从右至左

    取地址& 从右至左

    同类型指针变量关系运算是有意义的。

    指针变量和数组名都表示数组的地址,但是数组名是地址常量。

    *p++(*p)++不同。*p++的赋值结果跟*p相同,p最后的结果是p+1;(*p)++的结果是p所指内存中的内容自加。

    Int (*p)[4]表示指向包含4个元素的一维数组的指针,一维数组元素为整型。Int *p[4]表示指针数组。p[i][j]还可以用*(*(p+i)+j)表示。

    char *s = “abcde”, s指向为”abcde”分配的常量内存地址。

    指针变量作为形参,实参可以是变量地址、指针变量、数组名。

    数组名作为形参,实参可以是数组名或指针变量。

    C语言中规定,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。指向函数的指针变量称为”函数指针变量”或”函数指针”。如:int(*pf)(int a,int b);

    函数指针的作用:1)使用函数指针调用函数 2)实现函数指针作为参数的功能

    要求函数指针的特征与所调用的函数特征一致,即返回类型、形参类型和个数。

    函数指针的性质与数据指针性质相同。不同的是数据指针指向内存的数据区,而函数指针指向内存的程序代码区。函数指针进行算术运算无意义。

    指向指针的指针是一个二级指针,跟一级指针是两种不同类型的数据,不可互相赋值,尽管值都是地址。

    指向结构体的指针习惯采用->访问结构体变量中的成员。也可以(*p).data,括号是必须的,因为"*"的优先级低于".",去掉括号变成*(p.data),意义不对。

  • 相关阅读:
    SQL_50题
    Java多线程之冰山一角
    概览
    Selector
    集群配置
    redis config
    分布式、集群
    redis相关技术总结
    redis scan扫描
    redis 单线程 多路io复用
  • 原文地址:https://www.cnblogs.com/chengsheng/p/5616551.html
Copyright © 2011-2022 走看看