指针
int main(){
char *cBooks[]={
"(C程序设计语言)"
"(C专家编辑)"
"(C和指针)"
"(C陷阱与缺陷)"
"(C Primer Plus)"
"(带你学C带你飞)"};
char **byFishC;//存放byFishC的地址
char **jiayuLoves;
int i;
byFishC = &cBooks;
jiayuLoves=&cBooks;
jiayuLoves=&cBooks;
jiayuLoves=&cBooks;
jiayuLoves=&cBooks;
printf("FishC出版的图书有:%s\n",&byFishC);
printf("小甲鱼喜欢的图书:\n");
for(i=0;i<4;i++){
printf("%s\n",*jiayuLoves);
}
return 0;
}
printf("FishC出版的图书有:%s\n",&byFishC); 为什么在Dev C++打印不出来? #include <stdio.h>
int main() {
char *cBooks[] = {"(C程序设计语言)",
"(C专家编辑)", // 编辑?我怎么没听过这本书?
// 学编程要认真,不认真怎么学编程?
"(C和指针)",
"(C陷阱与缺陷)",
"(C Primer Plus)",
"(带你学C带你飞)"};
char **byFishC; //存放byFishC的地址
char **jiayuLoves;
int i;
byFishC = &cBooks;
jiayuLoves = &cBooks;
jiayuLoves = &cBooks;
jiayuLoves = &cBooks;
jiayuLoves = &cBooks;
printf("FishC出版的图书有:%s\n", *byFishC);
printf("小甲鱼喜欢的图书:\n");
for(i = 0; i < 4; i++) {
printf("%s\n", *jiayuLoves);
}
return 0;
}
本帖最后由 isdkz 于 2022-2-12 00:43 编辑
printf("FishC出版的图书有:%s\n",&byFishC); 中的&是取地址符,你把一个地址当作字符串输出当然不是你想要的效果了,要把&改成*
这时候你会发现输出了(null)也就是说这个byFishC这个指向了null,而byFishC你赋值成了&cBooks;
回去检查cBooks,可以发现你的数组漏了逗号,所以其实你的数组只初始化了一个元素,所以导致其它的元素默认是(null)
#include <stdio.h>
int main()
{
char *cBooks[]={
"(C程序设计语言)", // 加上逗号
"(C专家编辑)", // 加上逗号
"(C和指针)", // 加上逗号
"(C陷阱与缺陷)", // 加上逗号
"(C Primer Plus)", // 加上逗号
"(带你学C带你飞)"};
char **byFishC;//存放byFishC的地址
char **jiayuLoves;
int i;
byFishC = &cBooks;
jiayuLoves=&cBooks;
jiayuLoves=&cBooks;
jiayuLoves=&cBooks;
jiayuLoves=&cBooks;
printf("FishC出版的图书有:%s\n",*byFishC); // &改成*
printf("小甲鱼喜欢的图书:\n");
for(i=0;i<4;i++){
printf("%s\n",*jiayuLoves);
}
return 0;
} 来学习
看看大佬 isdkz 发表于 2022-2-12 00:40
printf("FishC出版的图书有:%s\n",&byFishC); 中的&是取地址符,你把一个地址当作字符串输出当然不是你想 ...
好的,谢谢了,是我太粗心了,跟着打都能打错 小城!! 发表于 2022-2-12 15:53
好的,谢谢了,是我太粗心了,跟着打都能打错
如果答案对您有帮助的话,顺手设置最佳呗,谢谢了
页:
[1]