c语言指针数组分配内存,指针数组&数组指针的分配内存及函数参数 C语言版

最近写代码总是被基础知识卡住,十分耽误时间,今天又卡住了。所以下定决心一定要弄清楚这个问题,然后不好的是网上的资料总是解决的并不清楚,总是在纠结什么是指针数组什么是数组指针,看了《C缺陷和陷阱》也没有我想要的东西。要么就是C和C++混为一谈,new int[5]这种语法C肯定是错误的,所以找个机会总结一下,然后希望以后不要再栽在基础上。

定义

指针数组:int p[10] 数组指针 int(*p)[5]。[]的优先级高所以 int *p[10]表示数组中都是int,而p指向数组首地址。没图说个p

0818b9ca8b590ca3270a3433284dd417.png

反之int(*p)[5]表示 *p指向一个大小为5的数组,p则是二维数组的首地址。

0818b9ca8b590ca3270a3433284dd417.png

使用

指针数组-本质是一个数组

int *p[10];

printf("%d\n",sizeof(p) );//是40

for (i = 0; i < 10; ++i)

{

p[i] = malloc(sizeof(int)*i);

}

for (i =

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值