Android 下 JNI 开发

本文深入探讨了C语言中数组与指针的关系,解释了如何通过指针操作数组,包括数组元素的输入与输出。并通过实例展示了数组名作为指针常量的概念,以及下标和指针在访问数组元素时的等价性。

取值找规律

 

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

    

   // printf("&iArray地址:%#x\n",&iArray);    

   // printf("iArray地址:%#x\n",iArray);

   //printf("iArray+1地址:%#x\n",iArray+1);

    

    / //得到对应的值

    printf("iArray[0]:%d\n",*iArray + 0);

    printf("iArray[1]:%d\n",*iArray + 1);

    printf("iArray[2]:%d\n",*iArray + 2);

    printf("iArray[3]:%d\n",*iArray + 3);

    printf("iArray[4]:%d\n",*iArray + 4);

      

    printf("iArray[0]:%d\n",*(iArray + 0));

    printf("iArray[1]:%d\n",*(iArray + 1));

    printf("iArray[2]:%d\n",*(iArray + 2));

    printf("iArray[3]:%d\n",*(iArray + 3));

    printf("iArray[4]:%d\n",*(iArray + 4));

 

运行结果如下:

数组在移动时,会根据类型移动指定的字节;

例如:int类型的数组,在+1时,会跳过4个字节;

          char类型的数组,在+1是,会跳过1个字节;

 

 

根据上面思想内容,改造用“户输入数组.c如下”:

 

#include<stdio.h>

#include<stdlib.h>

/*

用户输入数组

//输入函数

scanf("占位符",地址);

*/

main()

{

     //1.让用户输入数组的长度;

     printf("请输入数组的长度:");

     int length ;

     scanf("%d",&length);

     printf("数组的长度为:%d\n",length);

    

    

     //2.更加用户输入的长度,创建数组

     int iArray[length];

    

     //3.让用户把数组元素依次输入

     int i;

     for(i =0;i<length;i++){

    

           printf("请输入第%d元素的值:\n",i);

           //scanf("%d",&iArray[i]);

           scanf("%d",iArray+i);

          

     }

    

     //4.把数组中的内容输出来

     for(i=0;i<length;i++){

            //printf("输入第[%d]元素的值:%d\n",i,iArray[i]); 

            printf("输入第[%d]元素的值:%d\n",i,*(iArray+i));              

                          

     } 

 

     system("pause");  

      

      

}      

 

 

 

 

数组名

int a[5]; // a是数组名,5是数组的大小,元素个数

数组名称是个指针常量,它存放的是数组中第一个元素的地址

int a[5];

&a[0]  等价于 &a

下标和指针的关系

int a[5];

a[i] 等价于 *(a + i)  // 这里i的范围是0~4(数组长度 -1)

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值