zoukankan      html  css  js  c++  java
  • cpp-week_one-错题整理

    cpp-week_one-错题整理

    2-14.以下哪个定义中的p不是指针,请选择恰当的选项:

    A.char **p;

    B.char (*p)[10];

    C.char *p[6];

    D.给出的三项中,p都是指针

    **p

    • 先将*p看成是一个整体(内容是指向p的指针),设为t,则*t是指向t的指针,所以**p的意思是指向(指向p的指针)的指针

    char (*p)[10]

    • ()的优先级最高,意味着p和*先形成了指针,而[10](以10个元素)是指针p所指向的内容,char表明了[10]元素的数据类型。
    • 数组指针:指向数组的指针

    char *p[6]

    • []的优先级高于*,故p会与[10]先结合形成数组,而char * 规定了数组p的每个元素的数据类型为字符型的指针
    • 指针数组:存放指针的数组,数组里每一元素才是指针,这种数组是指针的集合

    2-16.若有说明: char *language[]={“FORTRAN”,“BASIC”,“PASCAL”,“JAVA”,“C”}; 则以下不正确的叙述是 ( )。

    A.language+2表示字符串"PASCAL"的首地址

    B.*language[2]的值是字符P

    C.language是一个字符型指针数组,它包含5个元素,每个元素是一个指向字符串变量的指针

    D.language是一个字符型指针数组,它包含5个元素,其初值分别j : "FORTRAN","BASIC","PASCAL","JAVA","C"

    B.*language[2]的值是字符P

    • language先和[2]结合找到PASCAL,在对PASCAL进行*操作,得到PASCAL的首字母。

    • #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	 char *language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"}; 
      	 cout<<language<<"  "<<*language<<endl;
      	 cout<<language+1<<"  "<<*(language+1)<<endl;
      	 cout<<language+2<<"  "<<*(language+2)<<endl;
      	 cout<<language+3<<"  "<<*(language+3)<<endl;
      	 cout<<language+4<<"  "<<*(language+4)<<endl;
      	 
      	 cout<<language[2]<<endl;
      	 cout<<*language[2]<<endl;
      	 cout<<*(language[2]+1)<<endl;
          return 0;
      }
      

    D.选DOG?

    2-54.设有下面的程序段:char s[]="china";char *p=s;则下列叙述正确的是____。

    A.数组s中的内容和指针变量p中的内容相等

    B.s和p完全相同

    C.s数组长度和p所指向的字符串长度相等

    D.*p与s[0]相等

    传送门

    答:答案:D
    A:s是字符数组,p是指向字符串的指针
    B:显然数组s中的内容和指针变量p中的内容不相等,应该换一种说法“数组s中的内容和指针变量p所指向的字符串的内容相等”

    • 指针变量p中的内容,存放的是地址?

    C:s数组的长度为6(包含结束符’’),p所指向的字符串长度为5
    D:*p=‘c’,s[0]=‘c’
    追问
    p所指向的字符串长度为啥是5呢?它不识别’’吗?
    追答
    '’不计入字符串总长度

  • 相关阅读:
    mac c++编译出现segmentation fault :11错误
    ssh 连接缓慢解决方法
    237. Delete Node in a Linked List
    203. Remove Linked List Elements
    Inversion of Control Containers and the Dependency Injection pattern
    82. Remove Duplicates from Sorted List II
    83. Remove Duplicates from Sorted List
    SxsTrace
    使用CCleaner卸载chrome
    decimal and double ToString problem
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/14775487.html
Copyright © 2011-2022 走看看