C语言——数组与指针进阶(二)

C语言中能否灵活应用指针就能看出你的C语言功底如何,接下来是我对在学习指针过程中,对一下较为苦涩概念的理解及总结。

一、指针的运算

指针的运算可归纳为以下三部分:
1、指针 +/- 整数
一般来说,此类运算只是左右移动指针所指向数组元素的位置而已;若指针指向的是&数组名,此时其加1,则移动的是一个数组了,不是一个元素;

2、指针 - 指针
此类是用与求两指针间数组元素的长度(两指针需指向同一数组)

3、指针的关系运算(<、<=、>、>=)
此时可通过地址大小的比较来遍历数组
具体事例有以下代码:

void main(void)
{
	int a[5];
	int *p = a;
	int *q = &a[4];
	int i = 0;
	for( ; p<=q; p++)
	{
		*p = i;
		i++;
	}
}

二、常量指针与指针常量的理解

1、常量指针:const char *p1
可以这么理解:去掉类型名为const (*p1),常量的指针,即指向一个常量的指针,特点:指向可以改变,当必须指向的变量必须是一个常量;

2、指针常量:char * const p2
指针的常量,即该指针是一个常量,特点是:指针的指向不能改变,但是能改变其所指向变量的值;

void main(void)
{
	const char *p1;  //等价于char const *p1;
	char * const p2;
	char a = 'a', b = 'b';
	char A = 'A', B = 'B';
	p1 = &a;
	*p1 = 'A'; //错误,不能改变其变量的值,其指向是一个常量
	p1 = &A;   //正确,可以改变指向的变量

	p2 = &b;
	*p2 = 'B'; //正确,可以改变所指向变量的值
	p2 = &B;   //错误,该指针是一个常量,不可以改变指向的变量
}

三、指针函数与函数指针

指针函数:指针类型的函数,返回值是一个指针(注意:该指针要是一个全局变量的地址),如:
char *p(int *, int *);

函数指针:函数的指针,指向某一类函数类型的指针
char (*pfun)(int *, int *);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值