一道C语言的题目,悬赏20分

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:21:47
求以下程序的输出结果:
#include<stdio.h>
main()
{char *p[]={"abcdefgh","ijkl","mnop","qrst","uvwx"};
int i;
for(i=0;i<3;i++)
puts(p[i]);
}

(并说明下理由为什么得出这个结果)

abcdefgh
ijkl
mnop
定义的p是一个指针数组,puts(p[i]);则输出第i个指针所指地址中的元素。由于循环中只有三个,所以只输出二维数组中的前三行。

就是输出前三个字符串

基础输出 没为什么

char *p[]定义一个字符指针数组,它的每一个元素都是字符指针类型。
puts(p[i])输出p[0],p[1],p[2],分别为数组的前三个元素即字符串aabcdefgh,ijkl,mnop。

p[i]这是代表的是指针。
char *p[];是你定义了一个数组,数组中存储的类型是char类型的指针。
p[0]代表你存的第一个指针
p[1]第二个
p[2]第三个
puts()是输出字符串的库函数。参数是指针类型。能输出一串字符串
所以输出是三个字符串的连续
abcdefghijklmnop