c语言 一个指针值加上一个整型值是什么意思?

我看书上写的这句话
q = L.elem + L.length;
L.elem是链表L的基址 L.length是链表的长度(int)
这两个能相加么?

可以相加啊,指针加整数表示指针移动,相应类型所占内存单位大小 乘 整数值
譬如
int num = 9;
int* p = #
假设, p 现在存有地址 0x1002,int类型为2字节
则 p + num 就等于 0x1002+2*9 = 0x1020
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-09
可以相加 ,表示移动到这个数组的最后一位 ,这里需要说到的是指针移位的方式是: 位数*类型大小
比如
int a[3]={1,2,3}
int *p=a;
p=p+2;//实际是 p+2*sizeof(int)
printf("%d\n",*p);//最后会打印3,即a[2]的值
第2个回答  2015-10-20
设指针是p,“整型值”是n,那么p+n表示指针p的指向向后移动了n个p所指向的元素所占有的空间值,即指向向后移动了n个元素。比如:char *p="1234567890";,则p+4指向了5,若'1'的地址是2000,那么p+4就是2004;若int x[]={1,2,3,4,5,6,7,8,9,0},*p;,则p+4也指向了5,但若1的地址仍是2000,p+4就是2000+4*4=2016了,因为一个int元素要4个字节存放。
第3个回答  2015-05-16
感觉像是数组首地址加上脚标,
基址+长度应该等于链表中具体的某一节
相似回答