对于如下说明,语法和语义都正确的赋值是_____。 int c, *s, a[]={1, 3, 5}; A. c=*s; B. s[0]=a[0]; C. s=&a[1]; D. c=a;
时间: 2024-05-25 22:09:51 浏览: 85
缺少完整的赋值语句,无法确定正确的赋值。下面是可能的赋值语句:
A. 此时指针变量 s 没有初始化,如果将其解引用会导致未定义行为,因此 c=*s; 是错误的。
B. 将 a[0] 的值赋给 s 所指向的地址,即 s[0]=a[0]; 是正确的。
C. 将指针变量 s 的值赋为数组 a 的首地址,即 s=a; 是正确的。
相关问题
对于如下说明,语法和语义都正确的赋值是_____。 int c, *s, a[]={1, 3, 5};
以下是语法和语义都正确的赋值:
```
c = 10;
s = a;
```
注解:
- `int c` 声明了一个整型变量 `c`。
- `*s` 声明了一个整型指针变量 `s`。
- `a[]={1, 3, 5}` 声明了一个整型数组 `a`,并初始化为 `{1, 3, 5}`。
- `c = 10` 将整型变量 `c` 赋值为 `10`。
- `s = a` 将整型数组 `a` 的首地址赋值给整型指针变量 `s`。
对于""中的说明,语法和语义都正确的赋值是A,B,C,D中的哪一个? “int c, *s, a[]={1, 3, 5};” A. c=*s; B. s[0]=a[0]; C. s=&a[1]; D. c=a;
答案是C。
解析:
- A中,指针s未初始化,不能对其进行解引用赋值给变量c
- B中,将a[0]的值赋给了s指向的地址,但是s未初始化,也不能进行解引用操作
- D中,将数组名a赋给了一个int类型的变量c,类型不匹配,不可行
- 只有C中,将数组a的第二个元素的地址赋给了指针s,语法和语义都正确。