C语言基础------指针

指针类型是C语言提供的一种特殊的基本数据类型。指针类型的变量中存放的不是待操作的数据,而是那些待操作数据的存储地址。

  • ‘&’ 被称为取地址运算符,只有输入字符串时,不需要使用运算符 &,因为数组名就是数组存储空间的首地址。定义一个指针型变量的语法格式是:<数据类型> * <指针型变量名>;
  • ‘*’ 与‘&’ 相反,它将返回指针型变量所指变量的内容,因此,又被称为取内容运算,如 *intptr = 30,*chptr = 'p';。
  • 基于指针的数据访问就是根据指针型变量中保存的存储地址来访问存储空间中的数据,只有把存储地址保存到指针变量之后,才有可能通过指针型变量来访问存储器中的数据。
  • 指针的比较就是地址的比较,指针的加减法就是地址和整数之间的运算,而乘法和除法对于地址运算是没有意义的。
  • 注意几个等价关系:例如,定义如下数组变量:int data[10];int *ptr;ptr=&data[0];,C语言规定数组名就是其首元素地址。
  • 存在如下等价关系:
  • data+idx,&data[idx],ptr+idx,&ptr[idx](地址关系);  data[idx],*(data+idx),ptr[idx],*(ptr+idx)(数据关系)。
#include<stdio.h> 
int main(){
	int *p,s[9]={1,2,3,4,5,6,7,8,9};
	for(int i=0;i<9;i++){
		printf("%5d",s[i]);
	}
	printf("\n");
	p=s;//等效于p=&s[0] 
	printf("%d\n",*p);
	*p=100;//等效于s[0]=100 
	*(p+1)=200;//等效于s[1]=200 
	for(int i=0;i<9;i++){
		printf("%5d",s[i]);
	}
	return 0;
}

运行结果如下: 

 

 

指针型实现选择排序: 

int *search(int key,int *plow,int *phigh){
	int *pmid;
	if(plow>phigh)
		return NULL;
	pmid=plow+(phigh-plow)/2;
	if(*pmid==key)
		return pmid;
	if(key<*pmid)
		return search(key,plow,pmid-1);
	else
		return search(key,plow+1,phigh);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zoom-fft 是一种在 C 语言中实现的快速傅里叶变换算法。快速傅里叶变换(Fast Fourier Transform,FFT)是一种经典的数字信号处理算法,用于将时域信号转换为频域信号。在 C 语言中,通过使用 zoom-fft 算法,可以高效地实现 FFT 算法。 zoom-fft 算法通过分治的思想,在每一层递归中将问题规模缩小一半,从而快速地计算出傅里叶变换。它利用了傅里叶变换中的对称性质,减少了冗余计算的数量,从而大幅提高了计算效率。zoom-fft 算法的时间复杂度为 O(nlogn),相比传统的傅里叶变换算法具有更高的速度和效率。 在 C 语言中实现 zoom-fft 算法需要借助于递归和迭代的技巧。首先,将输入信号按照奇偶下标分为两部分,然后对每一部分进行递归调用 zoom-fft 算法,并计算得到各自的傅里叶变换结果。接着,将这两部分的结果按照一定的规则合并,得到完整的傅里叶变换结果。 zoom-fft 算法在 C 语言中的实现可以使用数组和指针等数据结构和编程技巧。通过递归和迭代的方式,可以将输入信号不断二分,直到问题规模足够小,然后进行基础的傅里叶变换计算。最后,再通过合并各个部分的傅里叶变换结果,得到整个信号的傅里叶变换结果。 总结来说,zoom-fft 是一种在 C 语言中实现的快速傅里叶变换算法,通过分治和递归的方法高效地计算信号的傅里叶变换。它在频谱分析、信号处理和图像处理等领域有着广泛的应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值