当前位置: 首页 > news >正文

[]指针

原文地址: 指针 作者: 半岛鱼

更详细的内容请看原文:

http://topic.csdn.net/u/20070112/09/35186e5a-0d94-4ea6-9b72-c5463cb3d1f3.html

先声明几个指针放着做例子:  
  例一:  
  (1)int*ptr;  
  (2)char*ptr;  
  (3)int**ptr;  
  (4)int(*ptr)[3];  
  (5)int*(*ptr)[4];  

  
  指针的类型
  从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型:  
  (1)int*ptr;//指针的类型是int*  
  (2)char*ptr;//指针的类型是char*  
  (3)int**ptr;//指针的类型是int**  
  (4)int(*ptr)[3];//指针的类型是int(*)[3]  
  (5)int*(*ptr)[4];//指针的类型是int*(*)[4]  
  怎么样?找出指针的类型的方法是不是很简单?  
  指针所指向的类型当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。    从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:  
  (1)int*ptr;//指针所指向的类型是int  
  (2)char*ptr;//指针所指向的的类型是char  
  (3)int**ptr;//指针所指向的的类型是int*  
  (4)int(*ptr)[3];//指针所指向的的类型是int()[3]  
  (5)int*(*ptr)[4];//指针所指向的的类型是int*()[4]  
  在指针的算术运算中,指针所指向的类型有很大的作用。  
  指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的 "类型 "这个概念分成 "指针的类型 "和 "指针所指向的类型 "两个概念,是精通指针的关键点之一。

指针的值,或者叫指针所指向的内存区或地址指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。

   我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。  

例三:  
intarray[20];  
int*ptr=array;  
...  
//此处略去为整型数组赋值的代码。  
...  
for(i=0;i <20;i++)  
{  
 (*ptr)++;  
 ptr++;  
}
  这个例子将整型数组中各个单元的值加1。由于每次循环都将指针ptr加1,所以每次循环都能访问数组的下一个单元。  

相关文章:

  • []FET-430SIM508 研究日志 11.3.31
  • []串口通信 零星笔记
  • []C/C++读取串口接收到的数据程序
  • []sim300 GPRS数据收发程序
  • []Telit UC864E 拨号上网
  • []常用AT命令解释()
  • []error LNK2001: unresolved external symbol _m
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • []我的函数库
  • 波分复用(WDM) 技术和概念
  • 2011年05月21日 男人成熟气质磨练
  • 【MSP430时钟】MSP430 5438时钟系统介绍
  • MSP 430 心得体会
  • MSP430X5XX的时钟系统与低功耗模式
  • MSP430:P1OUT=4、P1OUT |=4、P1OUT -=~8的意思
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【5+】跨webview多页面 触发事件(二)
  • 【node学习】协程
  • Elasticsearch 参考指南(升级前重新索引)
  • extract-text-webpack-plugin用法
  • jQuery(一)
  • python学习笔记-类对象的信息
  • Vue.js 移动端适配之 vw 解决方案
  • 爱情 北京女病人
  • 区块链将重新定义世界
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 收藏好这篇,别再只说“数据劫持”了
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • nb
  • gunicorn工作原理
  • ![CDATA[ ]] 是什么东东
  • #include
  • #Lua:Lua调用C++生成的DLL库
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #NOIP 2014#Day.2 T3 解方程
  • #pragma pack(1)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)母版页和相对路径
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET Standard 的管理策略
  • .net 调用php,php 调用.net com组件 --
  • .Net语言中的StringBuilder:入门到精通
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @FeignClient注解,fallback和fallbackFactory
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [ C++ ] STL---string类的模拟实现
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [BZOJ2208][Jsoi2010]连通数
  • [C#] 基于 yield 语句的迭代器逻辑懒执行
  • [C#] 如何调用Python脚本程序