初识指针和结构体

98 阅读1分钟

内存和指针

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

image.png

变量是创建在内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。 取出变量的地址:

#include int main() 
    { int num = 10; //取出num的地址                                                     //注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)  
            
      printf("%p\n", &num);          //打印地址,%p是以地址的形式打印
             
    return 0; }

image.png 若想存储地址,需要定义指针变量。

    int num = 10; 
    int * p ;  //p为一个整型指针变量
    p = #

image.png

p中的是解引用操作符,意思是通过p中存放的地址,找到p所指的对象,*p就是p所指的对象。可以间接性修改p所指的变量的值。

若存放其他类型的变量地址,只需要修改*前面的类型即可

    int main() 
 {
    char ch = 'w' ;
    char *pc = &ch ;
    return 0 ;
    }

image.png

结构体

结构体是把一些单一类型组合在一起的做法

image.png image.png