我能“C”——初阶指针(下)

目录

4.指针运算

4.1 指针+-整数 

4.2 指针-指针 

4.3 指针的关系运算

5.指针和数组 

6.二级指针

 7.指针数组

THE END


4.指针运算

  • 指针+-整数
  • 指针-指针
  • 指针的关系运算

4.1 指针+-整数 

代码里*vp++(解引用) 是每+1就跳过一个float。

4.2 指针-指针 

地址-地址

条件:1.两个指针指向同一块空间,指针类型是一致的

           2.指针-指针得到的是指针和指针之间的元素个数

 

指针-指针得到的是元素个数 

4.3 指针的关系运算

#define N_VALUES 5
float values[N_VALUES];
float *vp;
for(vp = &values[N_VALUES];vp > &values[0];)
{
    *--vp = 0;
}
//代码简化
for(vp = &values[N_VALUES-1];vp >= &values[0];vp--)
{
     *vp = 0;
}

实际在绝大部分的编译器上是可以顺利完成任务的,然而我们还是应该避免这样写,因为标准并不保证它可行。
标准规定:
允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与 指向第一个元素之前的那个内存位置的指针进行比较。

 C语言规定,如图 p1只能和p3比较大小,但是不能和p2比较。

5.指针和数组 

——>

指针就是指针,不是数组            数组就是数组,不是指针

指针的大小:4/8 个字节,指针是存放地址的,地址的存放需要多大空间,指针变量的大小就是多少。

数组的大小:取决数组的元素个数和每个元素的类型。

6.二级指针

指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?
这就是 二级指针

 

 要是我得到ppa想打印a怎么办

 那就解两次引用呗

 7.指针数组

指针数组是指针还是数组?
答案:是数组。是存放指针的数组。
数组我们已经知道整形数组,字符数组。

THE END

        这是今日份关于指针的一些分享,希望可以帮助到大家!如果有什么不足的地方也请家人们给小叶一些好的建议,我会不断优化文章的!那就让我们一起加油吧!哈哈哈哈哈

猜你喜欢

转载自blog.csdn.net/Yzl17841857589/article/details/129901862