给指针加上一个整数实际上加的数是这个整数和指针数据类型对应字节数的乘积。
用在数组中就是对数组元素的偏移
测试程序
#include "stdio.h"
int main(int argc, char *argv)
{
int test_arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9 ,10};
int test_num = 3;
int *p = test_arr;
printf("test arr address = %p\r\n", p);
p = test_num + p;
printf("test arr and num address = %p\r\n", p);
printf("array value = %d\r\n", *(p - 3));
printf("array value = %d\r\n", *p);
if ((p - test_arr) != sizeof(int) * test_num)
{
printf("test successful\r\n");
}
else
{
printf("test faile\r\n");
printf("p - test_arr = %d\r\n", p - test_arr);
printf("sizeof(int) * test_num = \r\n", sizeof(int) * test_num);
}
while (1);
}
/*
test arr address = 000000000062FDE0
test arr and num address = 000000000062FDEC
array value = 1
array value = 4
test successful
*/