[C指针]指针与数组:int vector[5]; int *p

2019-04-13  本文已影响0人  AkuRinbu

学习笔记

《深入理解C指针》
http://www.ituring.com.cn/book/1147
第4章 指针与数组

1、指针概述

一维数组、二维数组

二维数组

如果只用一个下标访问二维数组,得到的是对应行的指针
数组很特殊,&matrix[i]matrix[i]都是取出指针里面存的内容

访问数组

2、指针表示法与数组

指针表示法与数组

数组和指针的差别

(1)vector[i] 与 *(vector+i) 生成机器码不同

mov DWORD PTR [rbp-32], 1
    mov DWORD PTR [rbp-28], 2
    mov DWORD PTR [rbp-24], 3
    mov DWORD PTR [rbp-20], 4
    mov DWORD PTR [rbp-16], 5
mov edx, DWORD PTR [rbp-24]
lea rax, [rbp-32]
add rax, 8

(2)sizeof(pv)与 sizeof(vector)

Visual studio 2019
GNU GCC v7.1.1)

(3) 数组名vector 不是左值,不可被修改

3、用malloc创建一维数组

用malloc创建一维数组
  • 分配一块内存并把它当成数组,其长度在运行时确定
上一篇 下一篇

猜你喜欢

热点阅读