*(p+1)=3
楼主追问
char s[10] = {‘A’,‘\0’,‘B’,‘C’,‘D’};则strlen(s)的值为
strlen是计算字符串长度,遇到'\0'结束返回长度,所以是1
struct num { int a ; int b ; float f ;} n = {1,3,5.0} ;struct num *pn = &n ;则表达式pn->b/n.a * ++pn->b的值是
pn结构体指针指向结构体n,n被初始化成{1,3,5.0}
pn->b/n.a * ++pn->b
<=>
pn->b = pn->b+1;
pn->b/n.a*(pn->b + 1)=3/1*2=6
结构体的->运算符优先级大于++
++这里是前加,先加1后再使用加后的值
*p=a中的a就是&a[0],即a[0]的地址,所以*p(p+1)=a[1]的值,即为3
p指向a的首地址,所以*(p+1)=a[1]=3
3