|
发表于 2022-2-12 00:40:04
|
显示全部楼层
本帖最后由 isdkz 于 2022-2-12 00:43 编辑
printf("FishC出版的图书有:%s\n",&byFishC); 中的&是取地址符,你把一个地址当作字符串输出当然不是你想要的效果了,要把&改成*
这时候你会发现输出了(null)也就是说这个byFishC这个指向了null,而byFishC你赋值成了&cBooks[5];
回去检查cBooks,可以发现你的数组漏了逗号,所以其实你的数组只初始化了一个元素,所以导致其它的元素默认是(null)
- #include <stdio.h>
- int main()
- {
- char *cBooks[]={
- "(C程序设计语言)", // 加上逗号
- "(C专家编辑)", // 加上逗号
- "(C和指针)", // 加上逗号
- "(C陷阱与缺陷)", // 加上逗号
- "(C Primer Plus)", // 加上逗号
- "(带你学C带你飞)"};
- char **byFishC;//存放byFishC的地址
- char **jiayuLoves[4];
- int i;
- byFishC = &cBooks[5];
- jiayuLoves[0]=&cBooks[0];
- jiayuLoves[1]=&cBooks[1];
- jiayuLoves[2]=&cBooks[2];
- jiayuLoves[3]=&cBooks[3];
- printf("FishC出版的图书有:%s\n",*byFishC); // &改成*
- printf("小甲鱼喜欢的图书:\n");
- for(i=0;i<4;i++){
- printf("%s\n",*jiayuLoves[i]);
- }
- return 0;
- }
复制代码 |
|