指针的使用和规范(包含代码和练习)

本文详细探讨了C/C++中的指针使用,包括一维数组指针、二维数组指针、函数指针和指针数组的用法,并提供了具体的代码示例和练习题,帮助读者深入理解指针操作。
摘要由CSDN通过智能技术生成

1.int *p可以承接一维数组和变量,取值时可以用下标法p[i]进行直接取值,或者用指针的偏移进行取值*(p+i),或者*p++,或者*p和p++的结合

2.int (*p)[i]用数组指针来承接二维数组,当p=a或者a+i时,是以行里面的有几个I元素来承接的,对应的是每一行的首地址,然后再通过指针的偏移来进行取值,例如:*(*(p+i)+j)或者*(p[i]+j)

3.int (*p)(),函数指针,也是像函数一样使用,p=函数名,()内是你要要传递的值,在使用时该指针时,因为函数是有返回值和没有返回值的,有返回值时要对应的在main里面给返回值一个可以存放该类型地址的内存单元,例如int a;a=a(*函数名)(传递的内容),这是有返回值的使用,无返回值时不需要一个有一个内存单元去承接,直接使用a(*函数名)(传递的内容)。

#include <stdio.h>
int sr(int data){
	
	return ++data;
}


void printwelcome(){
	puts("程序启动,欢迎使用");	
}

int main()
{
    void (*p)();//定义了一个函数指针变量
    int  (*p1)(int data);//一般直接复制函数的整体,然后把函数名变为相应的函数指针变量
	
	p1=sr;//函数名就是函数的首地址
	p=printwelcome;//指向函数
    printwelcome();
    (*p)();//指针调用函数
	
	printf("%d",(*p1)(10));//在函数调用时注意把实际的值或者地址进行传输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值