c语言-数组/指针/函数(小结)

本文详细解析了C语言中指针与数组的各种用法,包括不同类型的指针及数组定义方式,如函数指针、数组指针、多维数组等,并通过实例帮助理解这些复杂概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int   f()                    f是一個函數,返回一個整型值
int   *f()                   f是一個函數,返回一個整型指針
int   (*f)()                 f是一個函數指針,所指向的函數返回一個整型值
int   *(*f)()                f是一個函數指針,所指向的函數返回一個整型指針

int   f[]                    f是一個整型數組
int   *f[]                   f是一個指針數組,數組元素的類型是整型指針
int   (*f)[]                 f是指针,指向一个数组,数组元素為整型
int   f()[]                  非法。f是一個函數,但是函數不可能返回一個數組,函數只能返回標量值。
int   (*f[])()               f是一個數組,數組元素類型為函數指針,所指向的函數返回整型值
int   *(*f[])()              f是一個指針數組,指針所指向的類型是返回值為整型指針的函數

 


int* a[10];  a是指针数组,数组每个元素是个Int类型的指针

int (*a)[10]; a是数组指针,a指向一个数组,该数组有10个Int类型的元素。所以a++会前进40个字节地址。


int a[2][3][4];

 

int (*p1)[2][3][4]=&a;   p1为指向一个三维[2][3][4]数组的指针。

int (*p2)[3][4]=a;          a==&a[0],而a[0]是一个二维[3][4]的数组。

int (*p3)[4]=a[0];          a==&a[0][0],而a[0][0]是一个一维[4]的数组。

int *p4=a[0][0];             a[0][0]==&a[0][0][0],而a[0][0][0]是一个Int类型的元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值