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

(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();
}

[JNI] 开发基础(3)指针操作相关推荐

  1. Android Studio1.4.x JNI开发基础 - 简单实例

    接上一篇,搭建好基于Android Studio的环境之后,编写native代码相对来说也比较简单了.在Android上编写Native代码和在Linux编写C/C++代码还是有区别,Native代码 ...

  2. Android Studio1.4.x JNI开发基础-基本环境配置

    从Eclipse时代到Android Studio普及,开发工具越来越好用.早些时候还需要安装Cygwin工具,从Android Studio1.3以后,在Android 环境开发JNI程序搭建开发环 ...

  3. JNI开发基础知识及编译SO(一)

    前言 本文主要介绍学习JNI从0开始学习过程的记录,包含JNI的定义,使用 以下是本篇文章正文内容 一.JNI是什么?SO是什么? JNI是Java Native Interface的缩写,它提供了若 ...

  4. android 字符串函数,Android JNI开发系列(六)字符串操作

    JNI字符串操作 字符串是引用数据类型,不属于基本数据类型 Java 使用unicode编码,C使用UTF-8,所以在操作中 C语言的字符串操作在头文件中 示例代码 public native Str ...

  5. JNI编程基础(二)——Android Studio NDK开发

    由于笔者目前的工作是Android开发,所以在JNI开发系列博客中穿插一篇AndroidStudio NDK开发介绍. 随着Android Studio 2.2的推出,Android Studio的N ...

  6. Android游戏开发基础part4--Bitmap位图的渲染与操作

    游戏开发基础part4--Bitmap位图的渲染与操作 知识点1:Bitmap与BitmapFactory 如果想通过一张图片资源文件创建一个位图,则要通过位图工厂来索引图片资源文件,从而生成一张位图 ...

  7. 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一

    数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...

  8. JNI开发笔记(二)--创建JNI基础工程并运行

    创建JNI基础工程并运行 引 1. 创建JNI工程 2. 添加虚拟手机设备 3. 运行JNI基础工程 引 JNI开发笔记(一)–Android Studio安装与环境搭建 1. 创建JNI工程 And ...

  9. ArcGIS二次开发基础教程(04):有关字段的操作和简单属性及空间查询

    ArcGIS二次开发基础教程(04):有关字段的操作和简单属性及空间查询 属性 字段的添加.删除和查找 IFeatureLayer GetLayerByName(string name) {ILaye ...

  10. WPF Multi-Touch 开发:基础触屏操作(Raw Touch)

    WPF Multi-Touch 开发:基础触屏操作(Raw Touch) 多点触控(Multi-Touch)就是通过与触屏设备的接触达到人与应用程序交互的操作过程.例如,生活中经常使用的触屏手机.触屏 ...

最新文章

  1. python3.6 使用pyinstaller 打包web程序的方法
  2. .NET跨平台实践:用C#开发Linux守护进程
  3. java ceilingentry_java.util.TreeMap.ceilingKey()方法实例
  4. C++中内存泄漏的检测方法介绍
  5. 文档在线编辑组件的发展回顾与开发集成选择问题
  6. android迷宫源代码,迷宫 c++源代码(Maze c++ source code).doc
  7. Redis 6.0 源码阅读笔记(11) -- 主从复制 Slave 节点流程分析
  8. 递归 非递归 遍历二叉树
  9. C/C++[codeup 2003, 2056]图形输出
  10. 步进伺服控制程序 用三菱plc和威纶触摸屏编写
  11. 小米android怎么刷机教程,安卓刷机教程_小米刷机教程_手机刷机教程-IT资讯(PC6.com)...
  12. 数据猿·金猿榜丨2017中国智能语音领域最具潜力创业公司
  13. 高德获取ip地理位置
  14. 项目管理:怎样做需求分析(二)
  15. 前端程序员到底应该学什么?怎么学?从哪开始学?
  16. http://www.dewen.net.cn/q/17095/SQL:用一条SQL语句统计出符合条件的内容
  17. 10位以内二进制数字转十进制计算器(Printing the Decimal Equivalent of a Binary Number)
  18. php fopen创建文件,php fopen函数用法(打开创建文件)
  19. ios 图像坐标系_iOS中理解坐标系 - Megan_zhou的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. iPhone彻底删除的重要照片怎么找回来?三招找回被删照片!

热门文章

  1. Model-free强化学习
  2. 每日一题/009/微积分/极限/连续
  3. ics计算机系统全称,ICS计算机系统实验--datalab实验
  4. Sitadel:一款功能强大的Web应用扫描器
  5. 62.不同的路径(力扣leetcode) 博主可答疑该问题
  6. mysql数据库wait_timeout_mysql设置wait_timeout详解
  7. PostgreSQL 之 CREATE FUNCTION
  8. JSON转换和序列化的区别
  9. 进程间通讯:实现基于多进程的文件拷贝
  10. Java编程:切面条