更多“假定一个字符数组的定义为“char a[]="12345";",则该字符数组的长度为_____ ”相关问题
  • 第1题:

    若有语句char *line[5];,以下叙述中正确的是 ______。

    A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

    B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

    C.定义line是一个指针数组,语句中的*号称为间址运算符

    D.定义line是一个指向字符型函数的指针


    正确答案:A
    解析:由于运算符[]优先级比*高,所以“char*line[5];”相当于“char*(line[5];”,表示line是一个数组,每个数组元素是一个基类型为char的指针变量。

  • 第2题:

    若有语句:char*line[5],以下叙述中正确的是

    A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

    B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

    C.定义line是一个指针数组,语句中的*号称为间址运算符

    D.定义line是一个指向字符型函数的指针


    正确答案:A
    解析:理解复杂定义要掌握两点:一、右结合原则.本题中的定义char*line[5];等价于char*(line[5]);;二、自外向内分解成typedef语句。char*(line[5]);等价于typedefchar*A;Aline[5];其中A被typedef定义成字符指针的别名,然后line被定义成A的一维数组,即字符指针的一维数组。再来看看行指针的定义char(*line)[5];它应该被分解成typedefcharB[5];B*line;其中B被定义成包含5个元素的一维字符数组,然后line被定义成指向B的指针,即指向包含5个元素的一维字符数组的指针。所以两者切不可混淆了,后者的括号不能省略。故本题应该选择A。

  • 第3题:

    若的以下语句,则下面()是正确的描述。 char x[]=”12345”; char y[]={‘1’,’2’,’3’,’4’,’5’}; A)x数组和y数组的长度相同 B) x数组的长度大于y数组的长度 C) x数组的长度小于y数组的长度 D) x数组等价于y数组

    A.理解错误#B.由于字符串”12345”隐含着一个字符串结束标志'0',故char x[]=”12345”定义的数组x的长度是6; 而char y[]={‘1’,’2’,’3’,’4’,’5’};定义的y数组长度是5。#C.理解错误#D.理解错误
    x 数组长度大于 y 数组长度

  • 第4题:

    若有语句:char *line[5];,以下叙述中正确的是

    A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

    B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

    C.定义line是一个指针数组,语句中的,号称为间址运算符

    D.定义line是一个指向字符型函数的指针


    正确答案:A
    解析: C语言中[]比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。

  • 第5题:

    假定一维字符指针数组的定义为"char* a[8];",则该数组占用的存储空间的字节数为()。
    32