指针——C语言的灵魂!指针顾名思义就是指向,由于c语言与机器底层关联紧密,掌握了指针那么内存就在你的手中!话不多说,今天这篇博客就对指针入个门!话不多说,let,s do it!
首先要介绍一个重要的概念——地址!地址——address!你如何找到你家?答案是你有你家的地址,通过地址给你一个指向,然后你找到你家!
比如定义一个int型的变量x,int在内存中占四个字节!如下图:
运行结果为:18ff40 (不同的机器输出结果可能不同),x的地址的存储如下图!
很明显这是int型的第一个字节的地址值!这说明指针的地址指向变量的第一个字节的第一个地址值!下面让我们来试试直接通过访问这个地址来访问变量!
来看看运行结果!
1 error!原因是直接访问的这个并不是变量x的地址,而是地址值!所以强制类型转换为int*就可以访问它,也就是说
&变量名中的地址是有类型的,其类型是该变量的类型后跟*即可,搞清了地址的概念来使用指针就不难了!下面通过一个简单的例子来实现指针对变量的访问!
地址的存储搞清了也可以通过y来表示x,嘿嘿,但是这种反人类的方法是不会用的,只是用这个方式来看看地址值的存储方式!地址值的存储时按栈的布局来存储的又高位到低位存储的!