在C语言中,若*S=1;则S[0],S[1]的值是多少,可以详细解释一下吗?

 我来答
金色潜鸟
2018-03-16 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5683万
展开全部
与变量声明和初始化有关。
若*S=1;则S[0] 也等于 1。
因为中括号是运算符,可以化为: s[0] = *(s+0) 等于 *(s) 等于 *s.
类似, s[1] = *(s+1), 它的值 与 变量声明和初始化有关。
假如是:
int a[]={11,12,13,14,15};
int *s=a;
*s=1;
那么 s[1] 的值没变,等于 a[1], 仍等于 12。
因为初始化时,s 指向了 a 数组的首地址,那时,s[0]=11,s[1]=12,...
*s=1; 改变了 s[0],没改变其它的值。
若 不是这样的程序,s 未初始化,例如:
int *s; *s=1; 那么 s[0] 是 1,s[1] 未初始化, 数值不确定。
White_MouseYBZ
2018-03-16 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6607万
展开全部
若声明正确,s[0]=1,s[1]不确定,是垃圾值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式