2020-03-30 |

更多地址算法

地址算法也可以被认为是指针算法,因为操作涉及指针。

除了使用+和–来引用下一个和上一个内存位置外,还可以使用赋值运算符来更改指针包含的地址。

例如:

int a[5] = {22, 33, 44, 55, 66};
int *ptr = NULL;

ptr = a;  /* 指向第一个数组元素 */
printf("%d  %x\n", *ptr, ptr);  /* 22 */
ptr++;
printf("%d  %x\n", *ptr, ptr);  /* 33 */
ptr += 3;
printf("%d  %x\n", *ptr, ptr);  /* 66 */
ptr--;
printf("%d  %x\n", *ptr, ptr);  /* 55 */
ptr -= 2;
printf("%d  %x\n", *ptr, ptr);  /* 33 */ 

程序输出类似于:

22 febd4760
33 febd4764
66 febd4770
55 febd476c
33 febd4764 

当指针递增时,内存地址将增加所指向的字节数。在上面的程序中,当使用递增运算符(ptr++)时,指针将增加4,因为指针指向一个int。

您还可以使用==、<和>操作符来比较指针地址。

0

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论