c语言 指针问题

指针是C语言的一种类型,是C语言的精髓。

使用指针的优点:

①可以直接操作内存,效率更高

②可以写复杂度更高的数据结构

③编写出简洁、紧凑、高效的程序

 

数据声明的对比:

int a  定义一个整型变量

int *a 定义一个指向整型数的指针,a指向个整型变量的地址,如:

#include<stdio.h>
void main()
{
	int n=10;
	int *a;
	a=&n;
	printf("a指向的地址:%d\n",a);
	printf("n的地址:%d\n",&n);
	printf("a的值:%d\n",*a);
}

上面结果输出为:

 

 

 

 

 

int **a / int *(*a) 定义一个指向指针的指针,如:

#include<stdio.h>
void main()
{
	int n,*a,**aa;
	n=10;
	a=&n;
	aa=&a;
	printf("n=%d\n",**aa);
}

上面结果输出为:

int *a[10] 一个有10个指针的数组,该指针是指向一个整型数的。

int (*a)[10]   一个指向有10个整型数数组的指针。

int (*max_function)(int a)  一个指向函数的指针,该函数有一个整型参数并返回一个整型数。

int (*a[10])(int)  一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。

 

注意一个细节:下图说明编译器为*a和**a都分配了地址空间,所以有不同的地址出现。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值