iOS之C语言指针,数组小结

本文详细介绍了指针的概念及其使用方法,并对一维和二维数组进行了深入解析,包括定义、初始化及数组名作为地址常量的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、指针的解释

     int num=10;

     int * p=#

    指针是一个比较特别的变量,它里面存储的值可以被解释为是一个内存的地址,上面的例子p就是这个指针名,指针的类型是int *,跟num一样,num里存的是int类型的数,只不过p里存的是int类型数的地址。所以说指针就是地址,地址就是指针。
  
    *p中的*是操作符表示指向变量p对应的存储空间,通俗的解释,1、遇见*,先把右边的东西找到,找到是p      2、p的是多少呢,是一个地址如&num  3、找到地址&num对应的存储空间是10,所以*p的值就是10。

2、数组的解释

   2.1 定义一维数组 :
  
    类型符  数组名 [常量表达式];

    如 int num[4];

    数组初始化:

    int num[4]={1,2,3,4};   int num1[4]={1,2}; int num2[4]={0};
   
    数组名是一个地址常量。

    2.2 定义二维数组

    类型符  数组名[常量表达式1][常量表达式2];
    
    如  int num[3][2]表示三行两列的整形数组,行可以省略,列一定不能省略。

    int num[3][2]={1,2,3,4,5,6};   int num1[3][2]={ {1,2},{3,4},{5,6}};   

     2.3 定义二维数组 


   int a[3][2]={{1,2},{4,4},{5,6}};

       printf("a=%p\n",a);

       printf("&a=%p\n",&a);

       printf("a[0]=%p\n",a[0]);

       printf("&a[0]=%p\n",&a[0]);

       printf("&a[0][0]=%p\n",&a[0][0]);

       printf("a+1=%p\n",a+1);

       printf("&a+1=%p\n",&a+1);


         运行结果如下

               

               a=      0x7fff5fbff7f0

              &a=      0x7fff5fbff7f0

             a[0]=     0x7fff5fbff7f0

            &a[0]=     0x7fff5fbff7f0

           &a[0][0]=   0x7fff5fbff7f0

           a+1=        0x7fff5fbff7f8

          &a+1=        0x7fff5fbff808


   由此可见数组名确实是一个地址常量 ,a表示数组的首地址,&a 表示数组a的地址,a+1表示向后偏移一行,&a+1表示整个数组偏移
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值