关于c语言的问题,求解

Char *s="abcde";
s+=2;printf ("%d",s);
这个题的为什么输出的是字符c的地址,求解释原理

s是字符串的首地址,加2表示地址向后移动两个位置,就指向字符c的地址,所以用%d输出的是字符c的地址

因为你输出用的是%d
输出修改为:

printf("%s",s);

s是指针,指针加法就是表示指针向后移动,加2就是向后移动两个单位,所以指向的就是c了

s一一开始指向的是字符串的首地址,也是a的地址
s+=2使得指针向后移动了两个单位,也就到了c的地址

s默认指向字符串第一个字符

s+=2;是把指针s的地址加2

s是一个指针,存放的内容就是指针所指向的地址,所以printf ("%d",s);打印字符c的地址

printf("%s",s);是%s哦,请采纳,谢谢🙈🙈🙈