我遇到了这个问题:
#include<stdio.h>
int main()
{
char str[25]="Catch me, if u can!";
printf("%s\n",&str+2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谁能解释一下我的意思&str+2?这是如何运作的?
小智 5
&str返回一个类型的指针char (*)[25].这意味着,该指针所指向的内存大小将是sizeof(str),即25.根据正常的指针算法,向该值添加2将导致指向类型的指针,该指针char (*)[25]将指向超过str数组末尾的25个字节.打印它很可能是未定义的行为.