内存和指针
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
变量是创建在内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。 取出变量的地址:
#include int main()
{ int num = 10; //取出num的地址 //注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
printf("%p\n", &num); //打印地址,%p是以地址的形式打印
return 0; }
若想存储地址,需要定义指针变量。
int num = 10;
int * p ; //p为一个整型指针变量
p = #
p中的是解引用操作符,意思是通过p中存放的地址,找到p所指的对象,*p就是p所指的对象。可以间接性修改p所指的变量的值。
若存放其他类型的变量地址,只需要修改*前面的类型即可
int main()
{
char ch = 'w' ;
char *pc = &ch ;
return 0 ;
}
结构体
结构体是把一些单一类型组合在一起的做法