有以下程序: #include < stdio. h > main( ) { ehar str[ ] [10] = { "China" ," Beijing" } , * p = str[o]; printf( "% s \n", p +

admin2009-01-15  19

问题 有以下程序:  #include < stdio. h >  main( )  {  ehar str[ ] [10] = { "China" ," Beijing" } , * p = str[o];      printf( "% s \n", p + 10);  }程序运行后的输出结果是(     )。

选项 A、China
B、Beijing
C、ng
D、ing

答案2

解析 C语言中二维数组是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。此题二维数组str[][10]第1行的前5个元素为’C’,’h’,’i’,’n’,’a’,第6个元素为’\0’,后4个元素为空字符。紧接着内存单元存放数组第2行的元素,即从str[1][0]到 str[1][9]分别为’B’,’e’,’i’,’j’,’i’,’n’,’g’,第8个元素为’\0’,后两个元素为空字符。执行 *p=str[0]后,指针p就指向了二维数组str的首地址,p+10指向从首地址依次向后的第11个存储单元即字符,B,的地址,所以输出Beijing,故答案为B。
转载请注明原文地址:https://kaotiyun.com/show/zZHp777K
0

相关试题推荐
最新回复(0)