• 指针


    任何指针都占用8个字节的存储空间

    清空指针
    p=0;
    p=NULL;
    // 清空指针后,不能再间接访问其他存储空间
     //*p = 100.7;错误


    数组名相当于指针常量,不可被更改
     
    int与const哪个放前面都一样
    相同
    const int ic=20;
    int const ic=20;
    相同:
    const int *pi;
    int const *pi;
    区别
     
    int const*pi;//不能通过指针修改所指空间内容(可以通过其他方式修改),但是可以修改所指内存
    int *const pi;//只是一个指针常量不能修改所指内存,但是可以通过指针修改所指空间内容

    1.数组元素的访问方式
     int ages[5];
     int *p;
     p = ages;
     1> 数组名[下标]  ages[i]
     2> 指针变量名[下标] p[i]
     3> *(p + i)

     
     2.指针变量+1,地址值究竟加多少,取决于指针的类型
      int *   4
      char *  1
      double * 8

    数组四种输出方法:
    int i,a[]={1,2,3,4,5,6,7,8,9,0};
        int *pa;
        pa=a;
     //方法一
        for (i=0; i<=9; i++)
        {
            printf("%d ",a[i]);
        }
        //方法二
        for (i=0; i<=9; i++)
        {
            printf("%d ",*(a+i));
        }
        //方法三
        for (i=0; i<=9; i++)
        {
            printf("%d ",pa[i]);
        }
        //方法四
        for (i=0; i<=9; i++)
        {
            printf("%d ",*(pa+i));
        }
        //方法五
        for (i=0; i<=9; i++)
        {
            printf("%d ",*pa);
            
    pa++;

        }

    当数组名作为函数参数时,退化为首元素指
     

    指针与数组比较
    所占空间不同!
    • -指针:只与操作系统位数有关! 
    • -数组:与元素个数和类型有关! 

    数组名是常量地址,不能重指向(不能赋值)!

     
    指针可以重指向!

    sizeof是运算符,并不是指针,a代表的并非元素首地址指针
        printf("%zd ",sizeof(a)/sizeof(int));

     

  • 相关阅读:
    Navicat 导出sql问题
    2017,我的第一次年终总结
    dev treelist和searchcontrol组合模糊查询用法
    构造函数详解
    Devexpress常见问题
    Devexpress 常用的功能
    dev Gridcontrol控件属性部分
    记录DEV gridview获取行列数据方法
    string类的几种方法
    plsql中的procedure和function编程
  • 原文地址:https://www.cnblogs.com/Alling/p/3971785.html
Copyright © 2020-2023  润新知