www.ndwl.net > C语言*(p+1)+1什么意思

C语言*(p+1)+1什么意思

按优先级一步一步的计算: 假设:int a[3]={1,2,3}, *p; p=a; 先定一个指针p指向a数组首地址。 解析下含义: 最里的的是*(p+1)表示,指向地址数值+1后内地址的值显示出来是2,指针指向不变还是指向数组首地址。也就是P+1是指向了a[1]的地址,p...

首先 p = &x[1]; 此时p的值为"yxw", 然后 打印*(p+1) + 1时, p+1 指向 ‘x’ * (p+1) = x 最后 *(p+1) +1 = ‘x’ + 1 = ‘y’ 打印出来就是 y 喽

以这种写法来看 p至少是**型 即指向指针的指针 比如int ** 这句话代表的含义是 对p右移一个单位 取值 对该值所代表的地址右移2个单位 对该地址取值 指针移动若干个单位,所增加的地址值取决于指针的类型 通用公式为 T *p; p+n = p的值+ n*(size...

*(p+1)表示具体的数值,指针p所指向的内存地址单元的下一个内存地址单元中的值; p+1 表示地址,指针p所指向的内存地址的下一个内存地址。 可以通过下面的实例来理解*(p+1)与p+1之间的区别: int *p; // 定义一个int类型的指针pint a[3]={1,2,3}...

printf("**(p+1) %d\n",**(p+1)); 这是一个输出函数,默认会打印在输出终端上,即执行的dos窗口。 参数为"**(p+1) %d\n",**(p+1),所以printf会先打印字符串"**(p+1) ", 然后根据格式字符%d, 将**(p+1)的值以整型形式打印出其值。 最终输出换行...

你这个是操作二维数组吧,**(p+2)表示取二维数组的第三个子数组的第一个元素

(*p)[2]是一个数组指针,指向一个含有两个元素的数组的地址。 由题意知道现在这个p指针指向a,a代表数组的首地址。所以p相当于a,*(*(p+2)+1)等价于a[2][1],也就是80。

第一个p指向的数据+1 第二个p指向的内存地址的下一个地址的数据

第一句应该是p = p+1吧。 这2句的结果是一样的,相信楼主也是知道的,都表示p+1然后结果存储在p中。 但是所有的研发还是实验,如果碰到自加1的运算都会选择p++,这里面的关键点是p++的运算速度比p=p+1快,虽然一条语句说快能块多少呢?但是运算步...

猜得出,一般情况下,*(*(p+i)+1)表示二维数组第i行第1个元素的值(i和1都是下标)

网站地图

All rights reserved Powered by www.ndwl.net

copyright ©right 2010-2021。
www.ndwl.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com