字符指针和整数指针(++)

Vij*_*jay 4 c c++ pointers

我有两个指针,

char *str1;
int *str2;
Run Code Online (Sandbox Code Playgroud)

如果我看一下两个指针的大小,我们假设

str1=4 bytes
str2=4 bytes
Run Code Online (Sandbox Code Playgroud)

str1 ++将增加1个字节,但如果str2 ++它将增加4个字节.

这背后的概念是什么?

jwe*_*ich 16

很简单,在提供的场景中:

  • char长度为1个字节
  • int(在您的平台中)长度为4个字节

所述++操作者递增尖类型的大小的指针.


unw*_*ind 9

对指针进行算术运算时,它始终是指向的对象,而不是字节.

因此,当您添加一个指针时,其目标对象是例如四个字节的指针将使其实际数值增加四.

这比使用所有指针算法以字节为单位更有意义.