美文网首页C
指针相关

指针相关

作者: taobao | 来源:发表于2017-10-27 17:41 被阅读13次

1、a和&a的区别

void main()
{
int a[5]={1,2,3,4,5};
int ptr=(int )(&a+1);
printf("%d,%d",
(a+1),
(ptr-1));
}
&a + 1: 取数组 a 的首地址,该地址的值加上 sizeof(a) 的值,即 &a + 5*sizeof(int),也 就是下一个数组的首地址,显然当前指针已经越过了数组的界限
(int *)(&a+1): 则是把上一步计算出来的地址,强制转换为 int * 类型,赋值给 ptr。
*(a+1): a,&a 的值是一样的,但意思不一样,a 是数组首元素的首地址,也就是 a[0]的 首地址,&a 是数组的首地址,a+1 是数组下一元素的首地址,即 a[1]的首地址,&a+1 是下一 个数组的首地址。所以输出 2
*(ptr-1): 因为 ptr 是指向 a[5],并且 ptr 是 int * 类型,所以 *(ptr-1) 是指向 a[4] , 输出 5。

2、指针数组和数组指针

指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。int p1[10]
数组指针:首先它是一个指针,它指向一个数组。在 32 位系统下永远是占 4 个字节, 至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。int (
p2)[10]

相关文章

  • 指针相关

    1、a和&a的区别 void main(){int a[5]={1,2,3,4,5};int ptr=(int )...

  • 指针相关

    第二篇博客来了,基本的指针知识还算是掌握得差不多,但是一旦声明比较复杂、各种括号指针合在一起时看起来就会有些发晕,...

  • 指针相关

    Q1:char * p;p = (char)malloc(10sizeof(char));strcpy(p, "C...

  • isa指针相关

    整理一下自己学到的知识,方便以后查看 1.向nil对象发送消息,为什么不会崩溃 每个想法在运行时,都会被动态转为消...

  • 指针相关知识

    如何通过被调函数修改主调函数中多个变量的值 实参必须为该普通变量的值 形参必须为指针变量 被调函数中通过 *形参名...

  • Day5

    学习内容:指针的概念与应用收获: 了解了内存的相关概念; 了解了指针的相关概念; 了解了指针变量的使用; 了解了字...

  • 指针相关的问题

    指针p的加减法运算 指针p + Np里面存储的地址值 + N * 指针所指向类型的占用字节数 指针p - Np里面...

  • C语言指针相关

    一、指针数组 和 数组指针的区别:1:指针数组,还是数组,数组每个元素是指针。2:数组指针,是指针,指向的是数组。...

  • 野指针相关概念

    野指针主要是因为这些疏忽而出现的删除或申请访问受限内存区域的指针。 指针变量未初始化 任何指针变量刚被创建时不会自...

  • 算法学习--双指针

    双指针分类 快慢指针 左右指针 快慢指针:主要解决链表相关问题,比如:典型的判断链表中是否包含环、链表倒是第K个节...

网友评论

    本文标题:指针相关

    本文链接:https://www.haomeiwen.com/subject/adkkpxtx.html