发布网友 发布时间:2024-10-24 02:56
共3个回答
热心网友 时间:2024-11-14 23:11
首先,B是错误的。因为P2是一个指针变量,p2直接表示该字符串的地址,而字符变量c,则只表示其存储的字符值,固正确的语句应是:p2 = &c; 对于A .D,由于字符类型数据在程序中执行计算时是按照其ASCII码值来像整型一样运算的,在最后赋值再转换为对应的字符。理论上,A和D都不正确的,因为只有当它们的ASCII小于255,才算是有效的字符。而C项,两个指针赋值,都存储着地址,故正确。我选C
热心网友 时间:2024-11-14 23:12
a 是对的,如果 p 指向的字符串的第一个字符 是普通的 ASCII 字符。
例如:
char s[]="zbcd";
char *p1=s, *p2=s;
char c;
c= *p1+*p2; // c 值 = 'z' + 'z' 可以用 16 进制输出数值。
b 是错的,因 类型不对,如果是 p2= &c; 则是对的。
d 通常是错的,因为乘积 的 结果 可能超出 char c; (一个字节整型)允许数值范围。
c = 'z' * 'z'; 超界。
c 是对的, 无论何种情况下 都对。所以是4个里的最佳选择。
热心网友 时间:2024-11-14 23:11
我认为: ACD都能编译通过, B不能编译通过(B应该写为: p = &c;)
题目出错了: 应该是选 不能正确赋值的语句