c++指针加1

Love The Way You Lie 2022-05-28 01:26 156阅读 0赞
  1. int64_t *p2;
  2. char *p1;
  3. p1=(char*)0x800000;
  4. p2=(int64_t*)0x800000;
  5. char*a=p1+2;
  6. int64_t*b=p2+2;

那么a和b的值分别是:0x800002和0x800010

因为设指针p的类型为T,

则p+i=(p的值)+i*sizeof(T)的字节数

char是1个字节,int64_t是8个字节。

p1+2=(p1中存放的值)+2*1个字节数

p1中存放的值为16进制,则2字节也转为16进制。加起来是0x800002.

p2+2=(0x800000)+2*8字节=0x800010

指针中存放的地址为字节地址

  1. char c1[]={'a','b','\0','d','e'};
  2. char c2[]="hello";
  3. char*c3="hello";
  4. cout << sizeof(c1) << endl;
  5. cout<<strlen(c1)<<endl;
  6. cout << sizeof(c2) << endl;
  7. cout << strlen(c2) << endl;
  8. cout << sizeof(c3) << endl;
  9. cout<<strlen(c3)<<endl;

70

发表评论

表情:
评论列表 (有 0 条评论,156人围观)

还没有评论,来说两句吧...

相关阅读

    相关 指针1C语言)

    目录 1.指针是什么 2. 指针和指针类型 2.1 指针+-整数 2.2 指针的解引用 3. 野指针 3.1 野指针成因 1. 指针未初始化 2. 指针越界访问

    相关 C++ 指针减运算

    首先明确几点: 1:涉及到数组的指针,若两指针指向的不是同一个数组,那么指针之间的加减运算是无意义的,因为得到的结果就是他们地址之间的差值。 2:指针变量加/减 一个整数,

    相关 C指针小结1

                                                C指针小结1      我认为C语言的核心就是指针和对内存的操作,而操作内存就是由指针

    相关 初识C 指针1

    计算机为声明的变量分配内存的形式:在程序代码中,使用变量名来引用这块内存,当程序编译后执行时,计算机就使用内存位置的地址来引用. 指针也是变量,只是它存储的内容是其它变量的内

    相关 C语言指针1

      计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码