c语言编程三座大山,C语言容易晕的问题 - osc_8i2fhl7z的个人空间 - OSCHINA - 中文开源技术交流社区...

C语言三座大山:数组、指针、函数。

单个概念并不复杂,但是概念互相套在一起就容易迷糊。基于此,整理如下:

1 数组:一批内存位置相邻的变量。

指针与数组:

因为指针可以用来做运算,所以通常可以用指针来指向数组。

int a[3] = {1,2,3};

int *p = a;

如上:p是变量, a是数组常量, 数组名本身就是个指针,但a是常量。

2 指针数组与数组指针:

指针数组:见名知意,是一个数组,其每个元素是指针。

例:int *p[4] 其中p是个长度为4的数组,每个元素类型是整型指针。

数组指针:本质是个指针,指向一个数组。

例:int (*p)[4] 其中变量p是一个指针,指向长度为4的元素为整型变量的数组。

3 指针函数与函数指针

指针函数:本质是个函数,返回值是个指针类型

int * func(int i, int j)

{

return &i;

}

函数指针:本质上是个指针,指针类型是函数

int max(int a, int b)

{

return a > b ? a : b;

}

int (*p)(int, int);

p = max;

4 指针常量与常量指针

指针常量:本质是个常量,常量类型是个指针 谁离变量近,变量类型就是谁

int a;

int *const p = &a;

p不可以变 *p可以变

常量指针:本质是个指针,指向内容是个常量

int a;

int const *p = &a;

(*p)不能变,指针指向的内容(p)可以变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值