c语言初始默认指针,重新初始化C语言指针

只是为了推动点回家,阵列不指针。当你声明numbers为int numbers[10],你在内存中的以下内容:

+---+

numbers: | | numbers[0]

+---+

| | numbers[1]

+---+

...

+---+

| | numbers[9]

+---+

有没有存储为一个单独的指针的numbers第一要素搁置。所发生的是,当表达numbers的任何地方出现,而且它不是的sizeof或一元&运营商的操作数,它被转换(“衰变”),以类型的表达式“指针int”,并且该值的表达式是数组的第一个元素的地址。

你与pn做的是将其设置为指向的numbers的第一要素,然后再“走”到数组:

+---+

numbers: | |

+---+ |

| | |

+---+ |

... |

+---+ |

| | |

+---+ |

... |

|

+---+ |

pn: | | -------+

+---+

表达pn++进步pn指向下一个整数对象,在这种情况下是所述数组的下一个元素:

+---+

numbers: | |

+---+

| |

+---+ |

... |

+---+ |

| | |

+---+ |

... |

|

+---+ |

pn: | | -------+

+---+

每个pn++前进指针,直到在第一循环结束,则有以下几种:

+---+

numbers: | |

+---+

| |

+---+

...

+---+

| |

+---+

...

|

+---+ |

pn: | | -------+

+---+

此时,pn所指向的对象立即阵列的端部以下。这就是为什么你必须在下一个循环之前重置pn;否则你走通过内存紧跟numbers,它可以包含相当多的东西,包括陷阱表示(即不符合合法值给定类型,即比特模式)。

尝试访问内存大于一个过去的数组的末尾调用未定义行为,这可能意味着从你的代码直接轰然显示垃圾按预期工作的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值