美文网首页
C语言 指针 * 间接访问操作符

C语言 指针 * 间接访问操作符

作者: SpringAlways | 来源:发表于2020-04-28 20:58 被阅读0次

*是一个单目操作符,它的意义是访问它所存储的地址,并查看地址所存储的值。也被称作解引用指针(dereferencing the pointer).

指针本质上就是一串数字,由bit位构成。可以1个bit,也可以一个字节,还可以多个字节。ios/macos中,是以4字节(32位)/8字节(64位)为单位的。同时也支持按字对齐。

#ifdef __LP64__
#   define WORD_SHIFT 3UL
#   define WORD_MASK 7UL
#   define WORD_BITS 64
#else
#   define WORD_SHIFT 2UL
#   define WORD_MASK 3UL
#   define WORD_BITS 32
#endif

static inline uint32_t word_align(uint32_t x) {
    return (x + WORD_MASK) & ~WORD_MASK;
}
static inline size_t word_align(size_t x) {
    return (x + WORD_MASK) & ~WORD_MASK;
}

这个对齐其实是硬件开发需要关注的,和cpu寻址有关,c语言开发者只需要知道两件事:
1、内存中的每个位置由一个独一无二的地址标识。
2、内存中的每个位置都包含一个值。(这个值可以被不同的读取方式读取成不同的意义)

相关文章

  • C语言 指针 * 间接访问操作符

    *是一个单目操作符,它的意义是访问它所存储的地址,并查看地址所存储的值。也被称作解引用指针(dereferenci...

  • 进阶-1

    复习 Go语言保留了C语言中的指针,但又有所不同;默认值为 nil操作符 & 取变量地址,* 通过指针访问目标对象...

  • go 指针

    指针 go语言指针:默认值为nil , 没有NULL常量操作符 "&" 取变量地址 &a , "*" 通过指针访问...

  • 计算机基础的考察

    语言语法(以C/C++为例)。 指针(数组),函数指针,操作符运算顺序,const(常指针与指向常量指针),sta...

  • c++11智能指针父类指针转换为子类指针

    1 C语言指针类型转换 C语言中的指针就是裸指针,裸指针存储是指向计算机内存的某一(起始)地址,通过*取值操作符可...

  • 特殊数据类型

    指针 GO 语言像 C 一样有指针,可以通过指针访问数据,但是 GO 的指针要安全的多: 首先,访问空指针会直接报...

  • 13-Go语言指针和方法

    指针 普通数据类型指针 Go语言中的普通指针和C语言中的普通指针一样, 通过指针也可以间接操作指向的存储空间 Go...

  • 9.指针与数组的区别

    访问指针时,先要找到指针变量本身的地址,从该地址再取到存放的指针值,然后对指针指向的对象进行访问,是间接访问。访问...

  • OC的深拷贝与浅拷贝

    Objective-C 对象是通过指向该对象内存地址的指针,以间接方式访问的。 指针赋值: MRC 下仅仅将一个新...

  • iOS开发-OC 中给 nil 发送消息会崩溃吗?为什么?

    Objective-C 是以 C 语言为基础的,PC 上,在 C 语言中对空指针进行操作,程序会由于越界访问而出现...

网友评论

      本文标题:C语言 指针 * 间接访问操作符

      本文链接:https://www.haomeiwen.com/subject/nonhfctx.html