当前位置:   article > 正文

C语言之指针总结_一个指针指向数组怎么判断p++是下一个字母还是下一个块

一个指针指向数组怎么判断p++是下一个字母还是下一个块

同样作为c语言的一个重要模块,同样又是新学


为了说清楚,首先介绍数据的储存与读取:(微机)

那么数据在内存中是如何储存与读取的

编译系统会根据定义的变量类型分配一定的长度空间,举个例子:我们去住旅馆,首先要根据我们自己有多少人来订多大的房间即确定合适的变量类型;老板安排的xxx号房相当于地址,而房间里住的我们相当于存放的数据。住旅馆休息得通过分配的房间号进行入住即对数据的存储都是通过地址来实现。


那么,输出语句printf()执行相当于退房过程:是通过根据变量类型与地址的对应关系,先找到地址,从它开始取出数据(常见的int 类型为2个字节,char类型为1个字节)。
输入语句scanf()执行相当于入住过程:把输入的数据送到某个房间(地址)开始储存单元。


储存数据又有两种方案:

  1. 按地址来直接存储数据:指定某地址(214)存储整型数据(3),直接储存。即用214的钥匙直接开锁入住
  2. 同样是1的情况,但是你忘记拿钥匙,但215有214寝室的人在串门,那你就得先去一趟215取到214的钥匙才能开门,即用地址215储存你214的钥匙,再打开214储存数据3.
    一个变量数据的地址叫做指针,专门用一个变量存储另一个变量的地址,这个变量成为指针变量,那么指针变量与他所指向的变量之间如何表示?

“*”

定义一个变量
基类型 变量名;
首先定义一个指针变量:
基类型 * 指针变量名
即:

int a; 
int * point ;
 point=&a;
  • 1
  • 2
  • 3

数组与指针:
定义数组,定义指针变量。即把数组首元素的地址交给指针表变量。
利用指针引用数组元素:

int *p;int a[10],p=&a[0];
  • 1

指针变量p+1指向的是数组中的下一个元素,但它的地址加的应该是相应的字节
这里注意指针变量的运算:
(1)p++相当于p指向下一个元素,即a[1]。
(2) * p++,即a[0],再将p指向下一个元素。
(3) * (p++)与 * (++p)不同,前者先取p对应的值,再使p+1。地址改变而++(*p)改变的是p所对应的值+1·。


在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/79759?site
推荐阅读
相关标签
  

闽ICP备14008679号