在C语言中,若*S=1;则S[0],S[1]的值是多少,可以详细解释一下吗?
展开全部
与变量声明和初始化有关。
若*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] 未初始化, 数值不确定。
若*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] 未初始化, 数值不确定。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询