c语言 *p[N], (*P)[N],及**p的区别

先明白什么是指针变量,和指针。指针其实就是存储单位的地址,指针变量是一个变量,用来存放指针(即地址);
    
int  *p[N]表示指针数组,也就是说定义了N个int型的指针变量。
    其中p[0] p[1] p[2] ...... p[N-1] 为指针变量,每个指针变量存放任意int型指针。
    p是一个二重指针,p为是指针变量p[0]的指针(就是p[0]的地址)。
    
int (*p)[N]表示定义p为一个指针变量,它指向包含N个整形元素的一维数组。
    其中(*P)[0]  (*P)[1]  ...... (*P)[N-1] 这些为一维数组的N元素。每个元素表示一个整形的变量,和int a中a表示的含义一样。
    (*p)表示的就是(*P)[0]的指针(即地址),就和int a[] 中的a含义一样。
    p为一个指针变量,存放的是(*p)的指针(地址的地址)。指针变量p存放的一个二重指针,和int **p中的p含义一样。
    
int **p 表示定义一个指向指针的指针。
    p为一个指针变量,存放的是指针的指针(地址的地址)。
 

注:*p[N] ,  (*p)[N]   它们中的p表示含义不同,一个表示的指针,一个表示的指针变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值