网站建设资讯

NEWS

网站建设资讯

C语言之指针

/*
指针 : 专于保存地址的数据结构,占用8个字节,并且可以通过指针保存的地址访问指针指向的内存空间的值;
    定义格式 : 指针所指向的数据类型 *指针名称;
    初始化 ; 1,定义的同时初始化,如 : int *[n]numP = #    //定义几级指针,则写几个"*";
             2,定义后,再初始化,如 : int *[n]numP; numP = #
             //注 : 变量名称往往决定了从内存哪里开始取值;数据类型决定了从内存取值时,决定要取多少个字节的值,
                    当然取出来的只是二进制而已;而占位符则决定了将取出来的二进制转换成怎样的形式进行输出;
指向数组的指针 : 
    定义格式 : 数组数据类型 *指针名称;
    //注 : 数组名称保存的即为数组的地址,即为数组中第一个元素的地址;因此,在对指向数组的指针初始化时,可直接将数组名称赋值给指针即可;
    //注 : 指针可做加减运算,如某个指针加1,这里的1指的是单位1,也即指针所指向的数据类型占用的字节数;
    案例 : 利用指针遍历字符串 :
    char string[] = "acssd";
    char *stringP = string;
    while (*stringP != '\0')
    {
        printf("%c",*stringP);
        stringP++;
    }
    printf("\n");
指针和字符串 :
    保存字符串的两种方式 :
        通过数组保存字符串,如 : char string[] = "adsdds";    //字符串保存位置: 栈中,生命周期 : 自创建起至return或"}";
        通过指针保存字符串,如 : char *string = "assd";    //字符串保存位置 : 常量区中,生命周期 : 自创建起,始终存在,且在常量区中,值相同的变量指向同一块内存空间;
                                                          //应用场景 : 当需要频繁使用某一个常量时,可避免内存空间的频繁创建和释放,提升程序执行效率;
指针数组 : 就是保存有多个指针的数组
    指针指向的数据类型 *数组名称[元素个数];
指向函数的指针 : 
    //注 : 函数也会占据一块内存空间,因此函数也会有自己的地址,保存在函数名中;
    定义格式 : 函数返回值的数据类型 (*指针名称) (形参)    //形参名称可省略不写;
    通过指针调用函数 : 1,(*指针名称)(实参)
                       2,指针名称(实参)
    应用场景 : 实现入口或类;
        常可通过指针实现一个入口,根据用户需求不同,调用不同的函数以实现不同的动作或功能.由此,我们也可以理解"类"这一概念,如在python中的print函数,时间上print函数
        仅仅只是一个打印入口而已,print函数会根据用户要求打印的内容不同,调用不同的打印函数,打印相应的内容,如打印整型数据和打印浮点型数据,调用的打印函数就不同;
*/

当前名称:C语言之指针
URL网址:http://cdweb.net/article/josjps.html