)大一c语言编程中关于指针的简单问题,,*(p+1)。。与p+1有啥区别,谢谢各位大神

作者&投稿:福茜 (若有异议请与网页底部的电邮联系)
在c语言的指针运算中*(p+1)与p+1有什么区别 p是指针~

一、指代不同
1、*(p+1):表示具体的数值。
2、p+1:表示内存地址。
二、指向的值不同
1、*(p+1):指针p所指向的内存地址单元的下一个内存地址单元中的值。
2、p+1:指针p所指向的内存地址的下一个内存地址。


三、内存表示不同
1、*(p+1):*的优先级比+的优先级高,所以*P+1在编译器中是先取出p指向的int值然后加1。
2、p+1:直接将内存中指向的地址加1,就是将要指向的地址。
参考资料来源:百度百科-指针变量
参考资料来源:百度百科-指针

你是指都经过自加1后t的地址和p的地址不一样吗?
如果是这个问题:
p的类型是int *p,即p是指向整型数据的指针,它每次加1会指向当前这个整型数据的下一个数据{1,2,3,4}中的2;
t的类型是int (*t)[4],即t指向的是一组4个整数,它每次加1会执行下一组4个整数,如题目程序加1后指向{5,6,7,8}这一组数据了。

前者是索引为1的数组元素p[1],
后者是指针,指向p[1]


茂港区15891267373: 大一c语言指针简单问题? -
钊亨欣妥: 一维数组的的数组名 跟一维指针可以算是等价的 比如 int a[10], *p; a 和 p 可以看成是一样的东西, 只不过a不能赋值 所以可以写:p=a; 或者 *p=*a 或者 p[i] = a[i];

茂港区15891267373: 关于C语言指针的一个简单的问题,求解答~ -
钊亨欣妥: 一开始定义的是shor型占两个字节每个字节都是F0,指针pi和pc都指向...

茂港区15891267373: C语言的 指针问题 -
钊亨欣妥: 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序.指针极大地丰富了C...

茂港区15891267373: C语言中对指针的理解与举例子 -
钊亨欣妥: 首先你要知道指针是一个变量,所以它具有普通变量的性质.比如你int a.a是一个变量.当你创建的时候,系统就会分配给他一个地址空间,它的长度是四字节的.你可以给这个变量a赋任何小于4字节的大小.指针也一样.它也有地址.它也...

茂港区15891267373: C语言中的指针请教 -
钊亨欣妥: 1.对于这个问题,我给你举个实例吧.一般旅店呢有很多房间,店主一般会在分别编号,这个编号就是各个门的地址了,我们再把各个号码贴在钥匙上,通过钥匙就可以访问各个房间了,而钥匙这个时候就相当于访问的指针了,他上面的门牌号...

茂港区15891267373: C语言中,关于指针的基础问题,望有高人指点 -
钊亨欣妥: 指针也是一种数据类型,所以在C中也必须先定义在使用.和其他的定义一样如整型(int),指针类型的也可以在定义时赋值,就是这样int *p=&i1,但是如果去掉类型说明int该语句不成立.p=&i1是赋值语句,使用前必须定义p为指针类型.int *p=&i1是声明语句,包含两层一定义p为整型指针,二将p赋值为&i1.你可以比较着int a=1000;和a=1000;这两个语句不要被*和&弄晕了!

茂港区15891267373: C语言指针简单的编程题 -
钊亨欣妥: int main() { double a[20]; double result = 0.0; int i = 0; double fact = 3.2; double val = 1.5; double *ptrDouble = &a[0]; //输出所有数组值 for (i = 0; i<20;i++) { *(ptrDouble + i) = i*fact+val; printf("%f ",*(ptrDouble + i)); } ptrDouble = &a[10]; //输出后是...

茂港区15891267373: 请问C语言中 指针是什么?有什么作用?请用通俗的语言解释 -
钊亨欣妥: 通俗的说,就是你家的门牌号, 简单地说指针就是指向变量和对象的地址. 指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递.还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率. 以上还只是指针的初步应用,随着你在C语言学习上的逐步深入,你会发现更多的用途的

茂港区15891267373: 简单的C语言指针问题 -
钊亨欣妥: 首先楼主要明白,二维数组a相当于指向一维数组的指针也就是说a是指针的指针,a里面存储的是一维数组的首地址,也就是a[0]和a[1].按照这个思路大概都明白下面表达式的意思和结果了吧?假设int占...

茂港区15891267373: C语言中有关指针的问题 -
钊亨欣妥: 首先指针本身也是一个变量,它也有自己的地址.而作为一个变量它又可以用来存放数据.那么对于对于如下的示例:int x = 10;int *p = &x;int *q = NULL;假设x的地址为22ff74, p的地址为22ff70,则p == 22ff74, *p = 10;如果执行语句q = p;那么q = 22ff74, *q = 10如果执行语句*q = *p;那么*q = 10,而q的地址将保持它原来的地址不变.在你的问题中:p = pr;表示p指向了pr指向的地址空间.*p = *pr表示p指向的结构体中的值等于pr指向的结构体中的值.此时p和pr的指向均没有发生改变.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网