A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenzuliang1993 中级黑马   /  2015-4-6 22:47  /  1690 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

*(p+1)和*p+1区别在哪

4 个回复

倒序浏览
#include<stdio.h>

int main(){
   
    int array[4] = {7,15,3,9};
   
    int *p = array;
   
    printf("%d---%d\n", *p + 1, *(p + 1));
    return 0;
}
运行结果是8---15,你自己体会一下
回复 使用道具 举报
*(p+1)和*p+1区别在哪
p 是一个指针,*p 表示访问指针 p 所指向的内存空间,所以 *p+1 表示指针 p 指向的内存空间的存储值再加上1,这个式子分两步,第一步访问指针 p 所指向的内存空间得出存储值,第二步 存储值加1。*(p+1) 也分两步,第一步 p+1表示指针变量 p 指向的地址空间往后面移一个单位(单位的大小根据指针类型而定,如64位系统中 int占4字节,char占1字节,那么 int * p 后移一个单位就是后移4字节,char * p后移一个单位就是后移一个字节)。第二步,*(p+1) 表示访问(p+1)所指向的空间。
回复 使用道具 举报

额,明白了
回复 使用道具 举报
开山斧 发表于 2015-4-7 16:40
*(p+1)和*p+1区别在哪
p 是一个指针,*p 表示访问指针 p 所指向的内存空间,所以 *p+1 表示指针 p 指向的内 ...

分析很透彻:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马