C语言……….若有定义语句:int a[4]={1,3,5,7},*p;p=a;则*(p+1)的值

C语言……….若有定义语句:int a[4]={1,3,5,7},*p;p=a;则*(p+1)的值是

*(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后再使用加后的值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-07
*p=a中的a就是&a[0],即a[0]的地址,所以*p(p+1)=a[1]的值,即为3追问

9.若有如下定义
char s[10] = {‘A’,‘\0’,‘B’,‘C’,‘D’};则strlen(s)的值为 。

这个呢,串连接

追答

*p;p=a中的a就是&a[0],即a[0]的地址,所以*p(p+1)=a[1]的值,即为3
A,因为遇到\0字符串会自动结束

追问

我又问了一道,这个教教我吧。

谢谢

追答

快断网了,不行的话明天回你,行不?我先看看

表达式没写错吧?怎么感觉有点不对呢?

追问

没写错

可以,不急。😊

第2个回答  2014-01-07
p指向a的首地址,所以*(p+1)=a[1]=3追问

9.若有如下定义
char s[10] = {‘A’,‘\0’,‘B’,‘C’,‘D’};则strlen(s)的值为 。

这个呢,串连接

第3个回答  2014-01-07
3追问

8.若有定义:
struct num {
int a ; int b ; float f ;
} n = {1,3,5.0} ;
struct num *pn = &n ;
则表达式pn->b/n.a * ++pn->b的值是 。

这个怎么做啊

追答

不会