问题 单项选择题

若有如下程序:
main()
static char*a[3]="123","456","789");
char **b;
b=a; ++b;
printf("%s,%s\n",*a,*a+1);
printf("%s,%s\n",*b,b[1]);

则程序运行后的输出结果是( )。

A.123,456,
456,789

B.123,23
456,56

C.123,23
456,789

D.123,456
456,56

答案

参考答案:C

解析: a为指针数组,a[0]即数组a的数组名指向字符串"123"的首地址,输出*a为"123",*a+1将指针下移1个存储单元,输出字符串为”23”。a[1]指向字符串"456"的首地址,a[2]指向字符串"789"的首地址。b为指针的指针,它的值为数组a的首地址。

单项选择题
填空题