今天在学习时遇到这个问题,我不理解第二个在这里表示什么意思,我理解的号是取地址里面的值,在这个表达式里(&str + 0)本身返回的不是一个地址吗?我原本想法是sum = ((&str + 0) + 1)让返回的地址 + 1,再用号取值再赋值,再输出,但经过调试发现这样做每次加的1,不是一个字节的长度,而是整个字符串的长度,我在
网上找到了这个表达式,但我不理解第2个*号的意思
以下是完整代码:
#include <stdio.h>
int main()
{
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int i = 0; i < 10; i++)
{
sum = *(*(&arr + 0) + i);
printf("%d\n",sum);
}
printf("\n");
return 0;
}
```c