首页 > 试题广场 >

设"char **s;",以下正确的表达式是( )。

[单选题]
以下正确的表达式是( )。
    char **s;
    char* str = "data";
    s = &str;


  • s="computer";
  • *s="computer";
  • **s="computer";
  • *s='c';
首先要弄清楚类型。 s的类型是char** *s的类型是char* **s的类型是char 字符串字面量的类型是char* 字符常量的类型是char。 假设s和*s已经指向正确的位置,那么 A:char**和char*不能隐式转换。 B:两边均为char*型。正确。 C:char和char*不能隐式转换。 D:char*和char不能隐式转换。 故正确答案是B。 以上百度得来
发表于 2017-09-15 10:04:38 回复(3)
computer 哪来的???不是 data 吗???
发表于 2020-01-27 18:57:36 回复(3)
对于下面的语句 char *x; //x 为一个指向字符串的指针 而题中的语句 char **s; 可以将其理解为 (char *)* s; 即s是一个指针,它指向一个char *类型的变量 因此这里对s进行寻址操作得到的 *s , 就是一个char *类型的变量,对 *s 的操作就和对开头的 x 进行的操作基本一致了
发表于 2017-05-15 16:33:50 回复(0)
有个问题,如果char**s之后s没有进行初始化,那么*s进行寻址就会发生错误,因为此时s没有指向任何实体
发表于 2017-05-24 10:47:13 回复(0)
*s与"computer"均为char *类型,故选B。
编辑于 2018-12-03 16:31:44 回复(0)
为什么D不对啊 有知道的么

发表于 2017-07-27 18:42:19 回复(6)
实际上考的是类型是否匹配
发表于 2023-06-06 17:42:20 回复(0)
s ->char** *s-> char* **s->char ''computer''->char*->*s
发表于 2022-04-02 09:33:44 回复(0)
看这个图就可以知道,s存储的是str这个一维指针自身的地址,所以你解引用s二维指针相当于得到str指针储存的“data”的地址,所以*s存储的是“data”的地址,然后我们看题目是赋值一个字符串,其实就是赋值一个地址给*s,因为*s还是一个指针可以存储地址,**s是访问的对象了不能再存储地址了
编辑于 2020-08-13 21:36:42 回复(0)
指针的类型:张豪03复习笔记.md  中指针的类型!!!

发表于 2024-07-11 20:05:15 回复(0)
为什么computer是指针类型 它不是字符串吗
编辑于 2024-01-23 15:30:36 回复(0)
对char **的理解和运用。
发表于 2022-06-10 17:41:16 回复(0)
关于B为什么是常量指针,从字符串函数中传入常量指针就可以看出。
发表于 2021-08-30 16:43:41 回复(0)
*s指向常量区computer的首地址
发表于 2018-07-07 23:49:12 回复(0)