A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

10.下面判断正确的是(  c    )。
A. char *s="girl";                等价于  char *s; *s="girl";
B. char s[10]={"girl"};            等价于  char s[10]; s[10]={"girl"};
C. char *s="girl";                等价于   char *s; s="girl";
D. char s[4]= "boy", t[4]= "boy";   等价于 char s[4]=t[4]= "boy"   为什么是C?

4 个回复

倒序浏览
A    将地址赋值给 字符串的值是不对的  B  s[10]  是s的第10个字符串 并且越界了  d   char s[4]=t[4] 自己分析
回复 使用道具 举报
代战 来自手机 中级黑马 2015-11-27 15:14:49
藤椅
首先 你要理解指针的原理 定义一个char *s 那么在内存中就会对这个指针变量 s一个内存空间 而这个s的内存空间中存放的数据其实是一个地址指向你所存数据的位置 所以选项A 它是把字符串赋值给*s是指针s的存储空间中 所以它会指向girl所转换的二进制所代表的地址空间里的内容 相对c就是正确的
回复 使用道具 举报
看了也不懂,,但是看了回复的解释,明白了A选项和C选项
回复 使用道具 举报
IPswhatb“is” 发表于 2015-11-28 21:07
看了也不懂,,但是看了回复的解释,明白了A选项和C选项

A是错误的,赋值语句两边的数据类型必须一致  左边的表示字符类型的指针   右边表示的是5个元素的字符数组  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马