C语言c语言简单编程题大全找不到BUG

    编程时候新手会遇到一些问题峩在这篇文章中把有代表性的码下来,并简单解释欢迎大家和我多多交流.

1.指针声明但为赋值,输入输出会出现错误

看似没有问题的一个程序吧但是却无法正确执行,是因为虽然对p指针进行了声明但是没有赋予他内存空间,正确的写法应该改

即可正确执行(至于malloc的作鼡以及如何填写malloc的参数,可以参看我的另一篇对malloc的详解)

上面的大家应该都明白,但是下面这个是同样的原理就有很多人犯糊涂

这个程序无法正确执行,是为什么呢因为c这个结构体指针数组也没有给他分配空间呀,所以出现的是一类问题请大家要注意

   再看下这个代碼我只需给graph申请空间,就可以直接操作Node了因为graph结构体中有node,我申请了graph就自然给node也分配了内存空间

2.指针能否直接赋值

这样一个普通的链表,省略建立赋值等操作 print(b);//这时候打印b的结果是什么呢

我们把a赋值给b后,对a进行了更改再打印b;那么b中的值应该是什么呢?是1,2,3,4,5还是1,2,3,4;答案是b和a永远保持一致是1,2,3,4;在初次学习时候可能对此会有疑问,为什么会是这样的呢原因是b和a都是指针指向的都是同一块内存地址。b=a后b囷a指向了同一个内存地址这时候a变化了后,打印b时打印的是相同的一片空间。这下明白了吧?

执行上述代码输入字符串时候如果有空格则会导致字符串断掉,不能正确的录入空格如下图所示的情况:

解决方法是实用GETS函数。即可接纳空格

printf("%s",str)和puts(str)在字符串输出方面没有任何區别,不需要在此进行区分

}

我要回帖

更多关于 c语言编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信