• C++学习随笔之四:函数C++编程模块


    1.函数原型:函数原型描述了函数到编译器的接口,也即是说它将函数返回值的类型以及参数的类型数量告诉编译器。

    2.指针和const:

    const用法有两种:一种是让指针指向一个常量对象(指针所指的内容是const),另一种是将指针本身声明为常量(指针为const)。

    int age =39;

    const int * pt = &age;

    int const *pt  与 const int *pt 是完全相同的。

    该声明指出,pt指向一个const int(这里是39),因此不能用pt来修改这个值,也即是说,*pt的值为const,不能被修改(不能通过*pt修改age的 

    值),但是可以通过age修改age的值。

    在C++中,禁止将const地址赋给非const指针。如:

    const float fg= 1.54;

    float *pm= &fg; // 这种赋值是非法的。

    而如下赋值是对的:

    cosnt float fg=1.54;

    const *pm= &fg;

    注意:如果数据类型本身并不是指针,则可以将const数据或非const数据的地址赋给指向const的指针,但只能将非cosnt数据的地址赋给非const指针

    指针的另一些妙用:

    请看下面声明:

    int num=39;

    cosnt int * pt=& num;

    在上面第二个声明中,cosnt只能防止修改pt指向的值,而不能防止修改pt的值,也即是说可以将一个新的地址赋给pt:

    int age=34;

    pt = &age;

    但是仍然不能使用pt修改其指向的值。

    第二种使用const方式,使得无法修改指针的值:

    int sum= 440;

    const int * pt =∑

    int * const pm = ∑

    在上面第三个声明中,使得pm只能指向sum,但是运行使用pm修改sum的值,第二个声明不允许使用pt修改sum的值,但运行将pt指向另一个

    地址。简而言之,pm和*pt都是const(常量),而*pm和pt不是。

    3. 数组与结构:数组名是地址,而结构名不是,要获取结构的地址,必须采用取址符&。

    4.函数指针:

    函数指针声明:通常要声明指向特定类型函数的指针,可以首先写出该函数的原型,然后用(*fp)替换函数名,这样fp就是这类函数的指针。

    例:

    double pam (int );

    double (*fp)(int );

    其中(*fp)必须加括号,因为括号的优先级比*高,故 *fp(int) 意味着fp()是一个返回指针的函数,而(*fp)(int)是一个指向函数的指

    针。声明完后可以把地址赋给指针:fp = pam;

    指针函数调用:

    在使用函数指针时,只需将其看作函数名,即将(*fp)看作函数名:

    double pam(int);

    double (*fp)(int);

    fp = pam;

    double x= pam(4);

    double y = (*fp)(5);

        指针函数:是返回值为指针的函数。

  • 相关阅读:
    MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类)
    IE和FF下javascript获取网页宽高及窗口大小
    JSON View – JSON格式化查看工具
    查询功能所属的菜单
    会计科目API CCID
    应付的帐龄分析SQL
    采购到入库所经历的表
    金额大小写转换(2)
    oracle行列转换总结
    金额大小写转换(1)
  • 原文地址:https://www.cnblogs.com/JczmDeveloper/p/2964796.html
Copyright © 2020-2023  润新知