00问答网
所有问题
C语言关于指针地址加1 那么他是怎么移动的呢?
还是没好好的理解。 好像是1是INT类型 占4个字节 所以指针移动了4位,还是没怎么搞懂额 大侠们有人知道吗。太抽象了。
举报该问题
推荐答案 2015-05-11
主要是看你定义指针的类型,比如你定义int *p=NULL; 那么int占4个字节。指向int的指针+1,该指针所指的内存地址要+4;如果你是定义 char *p=NULL; 那么char占1个字节。指向char的指针+1,该指针所指的内存地址只要+1
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/DBZ0Trjn0eZj0enj00I.html
其他回答
第1个回答 2015-10-09
说实话,我不懂你说的意思。C语言中,指针地址加一的话,就是指针变量的改变。这改变之后,经过编译交由硬件实现。硬件在内存层面上对数据进行移动。
第2个回答 2022-01-07
c语言中关于指针+1需要非常注意细节,比如下面的两个是完全不同的概念:
*p++
(*p)++
一个是对指针进行+1,一个是对指针指向的地址里面的值进行+1。
指针+1是将指针指向下一个地址空间,比如申请了一个int类型的数组:
int a[] = {2,3,4};
*p = &a[0];
*p++;
p则指向了数组中第二个元素,也就是数组的第一个元素后面元素的地址空间。
printf("%d\n",*p);
输出的就是3这个整形数组中第2个值。
第3个回答 2020-12-31
主要是看你定义指针的类型,比如你定义int *p=NULL; 那么int占4个字节。指向int的指针+1,该指针所指的内存地址要+4;如果你是定义 char *p=NULL; 那么char占1个字节。指向char的指针+1,该指针所指的内存地址只要+1
刚学习C语言的朋友,对指针“移动”可能不太理解。举个例子,例如下述代码:
int a = 1;
那么大家都知道a + 1肯定就是2了。如果是指针呢?例如:
int *p = 1;
p + 1还是2吗?
为了说明问题,请看以下代码:
相似回答
在
c语言的指针
运算中*(p+1)与p+1有什么区别 p是指针
答:
在
C语言的指针
运算中,`*`表示的是指针`p`向后
移动
一个存储单位后指向的内容,而`p+1`表示的是指针`p`向后移动一个存储单位后的地址。详细解释如下:
指针是C语言中
用来存储变量
地址的
变量。当我们对指针进行
加1
操作时,实际上并不是将
指针的
值简单地加1,而是加上了一个存储单位的大小。这个存储...
如图,
c语言中的指针加1
为什么是加4
答:
int类型占四个字节,
指针
偏移一位相当于偏移一个int的
地址
,所以是偏移了四个字节的地址
关于C语言的指针
问题(
指针的地址
+
1
问题)
答:
q = &a[0] +
1
;//将a[0]的
地址
向右偏移一位就等于a[1]的地址 a[1] = 8那么*q应该等于8 s = q + 1;//将q
指针
向右偏移一位,相当于把a[1]的地址向右偏移一位,即a[2]的地址指向的值是25 //打印验证一下 printf("a[0] = %d; *q = %d ;a[1] = %d *s = %d\n",...
为什么
c语言的指针
➕
1是
向后移动2位,不
是移动
4位,
一
个指针不是4byte...
答:
然后说到你的问题,
指针的移动是指针
指向元素的移动,比如指针指向一个整形数组 int a[5];int *p=a;//p指向数组的首
地址
即第一个元素 p=p+1;//这时p指向数组的第二个元素,也就是说现在p保存的是数组第二个元素的地址 从这里看出,p的移动是从指向第
一
个元素移动到指向第二个元素,这里定义...
大家正在搜
指针指向的地址里面的内容加1
c语言指针地址
指针变量自加地址偏移为2
c语言中指针的定义
c语言指针的用法
指针地址加一
c语言行指针
c语言指针详解
c语言指针类型
相关问题
关于C语言的指针问题(指针的地址+1问题)
C语言怎么让地址加1呢
关于指针移动1个位置和指针加1的区别?
c语言,关于指针内数据的移动?
c语言指针地址加1是多少位
如图,c语言中的指针加1为什么是加4
C语言指针p怎么有时候p+1移动一个元素,有时候移动地址
C语言中关于指针的一点问题