C语言指针

指针

基本知识

指针就是一个地址,是可以根本改变的东西

&是取地址符

输出%p(place)表示输出地址

tips

指针是可以比较大小的!

指针大小的比较只允许最后一个和下一个比较,一般不允许第一个和前一个比较

指针的本质其实也是一个变量

指针类型

指针类型决定了指针解引用的时候访问空间的大小,同时也决定了指针+1时改变的字节

int *四个字节

char* 一个字节

doouble* 八个字节

int ppa=&pa二级指针

注意:指针使用之前必须初始化,一般初始化为NULL

间接寻址运算符

scanf printf都是直接寻址,

指针运算符*是间接寻址运算符,(与取地址符&是可逆运算)

按值调用与模拟引用调用

指针的本质作用:从函数返回多个值

本质就是通过交换指的方式来改变地址的指向,从而改变数值

函数指针

指向函数的指针,本质还是指针

作用:使得某一函数的功能系统化,普遍化,可修改化,传递不同的函数名来调用不同的函数

方法:数据类型(*指针变量名)(形参列表)

int Fun(int a,int b);
int (*f)(int ,int);
f=Fun;

典例:计算定积分,通用排序函数

排序

void SelectionSort(int a[].int n,int (*compare)(int,int))
{
    int i,j,k;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if((*compare)(a[j],a[k]) )
                k=j;
        }
    }
}

定积分

float Intergral(folat (*f)(float),float a,float b)
{
    float a,b;
    int n=100,i;
    a=((*f)(a)+(*f)(b))/2;
    h=(b-a)/n;
    for(i=1;i<n;i++)
    {
        s=s+(*f)(a+i*h);
    }
    return s*h;
}
y1=Integral(F1,0.0,1.0);
y2=Integral(F2,0.0,3.0);

总结

指针的使用是在调用函数的时候使用解引用修改数值来修改

传地址,改数值!

指针加减整数相当于对应数组的加减

指针减指针得到的是中间元素的个数

posted @   诩en  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示