C 指针的运算
在接下来的时间里面,我们准备为大家介绍"指针的运算"。
(1)指针的运算:经过前面的学习,我们可以了解到指针就是内存中的地址,而这个地址如果我们
使用它进行相应的算术运算,如:加减运算,那么,就可以改变这个内存地址值,当内存地址
的值发生改变以后,就意味着指针,指向其它的内存地址,从而,就可以实现,通过改变
指针(即地址)中的值,来获取不同内存地址中的内容这个目的了。
(2)
例子:
int a[ 2 ] = {1,2,3}; //定义了整型变量数组a,并存放了3个整型值,
分别是1,2,3。
int *p = &a; //定义了指针变量p,并通过&运算符取出变量数组a的地址,赋给指针变量p。
所以,就是取出了变量数组a的起始地址,通过下面的表格我们可以看到
该起始内存地址是1000,所以,p中的值就是1000。
p = p + 2; //然后,我们使用p加上2,即使用p中的值1000+2,结果就是1002,再赋值
给p,所以,p中的值就等于1002。
int c = *p; //然后,通过星号指向p中保存的内存地址1002,根据下面的表格,我们可以
看到1002是数组元素a[2]的地址,而它的值是3,所以,就取出了3赋值给
变量c,所以,c中的值等于3。
变量数组a | 内存地址 | 变量值 |
a[0] | 1000 | 1 |
a[1] | 1001 | 2 |
a[2] | 1002 | 3 |
小结:
(1)指针变量中的地址值可以进行算述运算来改变它的值,从而,实现将指针指向其它的内存地址。
(2)当指针变量指向一个数组时,可以通过改变指针变量中的地址来指向数组中不同的元素。
非常好,现在,我们已经掌握了C中的“指针的运算”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)