[JNI] 开发基础(3)指针操作

指针操作与指针变量相关-指针变量就是存放地址的变量。指针变量的引用主要涉及到两个方面:

(1)对指针变量本身的引用,就是说对指针变量进行的各种运算

(2)对指针变量所指向的目标,对指针进行引用。
通俗的说上述两种情况,一种是对地址的运算,一种是对地址所指向的变量进行间接引用。

跟指针相关的操作符主要有3个:&、*、[]

(1)&:取地址运算符,

(2)*:指针运算符—–取指针所指向的运算符。即:取指针变量(地址)所指向的变量值。

(3)[]:下标操作符—–取指针所指向的操作符。即:取指针变量(地址)所指向的变量值,一般在数组运算中使用的比较多。

指针有6种基本操作,这些操作运行,一般在数组遍历时候才有意义,基于数组在内存中显现排列方式。

接下来举例说明:

void main(){
    //数组在内存中是连续存储的
    int arr[] = {67,10,1,23,50,89,44};
    //数组变量名:arr 就是这个数组的首地址
    printf("%#x\n",arr);//首地址
    printf("%#x\n",&arr);//首地址
    printf("%#x\n",&arr[0]);//首地址
    //上面3条输出结果是一致

    //指针变量
    int *p = arr;
    printf("%d\n",*p);//p值= arr[0]
    printf("%#x\n",p);//指向数组的首地址

    //指针加法
    p++;//p++ 向前移动sizeof(数据类型)字节,这里为int移动4个字节
    int *p1;
    p1 = p +4;
    printf("%#x\n",p);
    printf("%d\n",*p);
    printf("%d\n",*p1);
    //指针减法
    p--;
    printf("%#x\n",p);
    printf("%d\n",*p);
    getchar();
}

1.赋值 ,通常可以是使用数组名或者地址运算符&进行地址赋值,int *p = arr;

2.取值 , 运算符 * 可以取出指针所指向到地址中存储到数值 printf(“%d\n”,*p);
3. 取地址值,指针变量同其他变量一样也具有地址和数值,使用&运算符可以得到指针本身的地址 printf(“%#x\n”,&arr);
4. 整数加给指针 , + 运算符可以将一个整数加给指针,或者把一个指针加上一个整数,两种情况下整数都会和指针所指到内型到字节数相乘,然后把得到的结果加在初始地址上
5.增加指针到值 :可以通过一般到加法或增量运算符俄增加一个指针的值,进行操作后指针将指向该数组的下一个元素,代码中p++ 即使指针从第一个元素指向第二个元素
6.指针减法,同加法运算类似

实例:通过指针给数组赋值

void main(){
    int arr[5];
    int *p = arr;
    int i =0;
    for(;p<arr+5;p++){
        *p = i;
        i++;
    }
    getchar();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值