1、 指针运算
指针运算,其实,指针也可以进行运算,而运算的结果将会指向内存中的另一个地址,所以,在对指针进行运算时,
要相当小心,否则,就会出现不可预料的结果。
2、例子:
int a[ 2 ] = {4,5,6}; //定义了整型变量数组a,并存放了3个整型值,
分别是4,5,6。
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]的地址,而它的值是6,所以,就取出了6赋值给
变量c,所以,c中的值等于6。
变量数组a |
内存地址 |
变量值 |
a[0] |
1000 |
4 |
a[1] |
1001 |
5 |
a[2] |
1002 |
6 |
小结:
(1)指针变量中的地址值可以进行算述运算来改变它的值,从而,实现将指针指向其它的内存地址。
(2)当指针变量指向一个数组时,可以通过改变指针变量中的地址来指向数组中不同的元素。
=======================================================================
非常好,现在,我们已经掌握了C语言中的(指针运算)但是,如何去运行用它呢?
所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。
>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)
|