黑马程序员-c语言指针的学习。

c语言的难点和精华部分就是指针,能够将指针完全理解并且将其运用熟练不是一件容易的事情,其中有几个知识点比较绕一些。

1.数组指针与指针数组的区别。

   数组指针是一个指针,是指向数组的指针,就如同int*,char*型指针,只不过它是指向数组的(首元素),大小为4(32位平台下),通过它就可以做找到整个数组。

     #include <stdio.h>
     int main(int argc, char *argv[])
{
           int a[3][4] = 
           {{0,1,2,4},
   {5,6,7,48},
   {9,10,11,12}
};
int (*p)[4];
p = a;
printf("%d",**(p +1)) ;
return 0;
}

        其中 int (*p)[4] 是一个二维的数组指针。

而指针数组是一个数组,数组的元素都是指针而已

#include <stdio.h>
int main(int argc, char *argv[])
{
int a[3][4] = 
{{0,1,2,4},
{5,6,7,48},
{9,10,11,12}
};
int *p[3];
for(int i=0;i<3;i++){
p[i] = a[i];
}

printf("%d",*p[1]) ;
return 0;
}

int *p[3]里面存的都是指针

2.指针函数和函数指针的区别

指针函数是一个函数,它的返回值是一个指针而已。其实准确来说没有指针函数这么一说,只有返回值为指针的函数或者参数为指针的函数。

函数指针是一个指针,这个指针指向具体的一个函数。它在嵌入式程序设计中是非常有用的,可以显著的减少代码量和优化代码结构,下面是一个简单的用法示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值