int * ptr; //指针所指向的类型是int
课题:
周四:C语言基础04-函数指针
指针函数与函数指针
函数指针传值,
函数执行过程与函数回调
函数参数详解
1
指针
指针自身类型
你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。
指针所指向的类型
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的
内容当做什么来看待。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指
针所指
向的类型
二 维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有
“
缝
隙”。以下面的二维数组 a 为例:
int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };
从概念上理解,a 的分布像一个矩阵:
但在内存中,a 的分布是一维线性的,整个数组占用一块连续的内存:
1.1
指针数组内存分布
C语言中的二维数组是按行排列的,也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行
中的 4 个元素也是依次存放。数组 a 为 int 类型,每个元素占用 4 个字节,整个数组共占用 4×(3×4) =
48 个字节。
C语言允许把一个二维数组分解成多个一维数组来处理。对于数组 a,它可以分解成三个一维数组,即
a[0]、a[1]、a[2]。每一个一维数组又包含了 4 个元素,例如 a[0] 包含 a[0][0]、a[0][1]、a[0][2]、a[0]
[3]。
评论0