您的位置:首页 > 编程语言 > C语言/C++

C语言使用过程中遇到的问题

2012-08-23 15:08 141 查看
1、如果想要通过函数修改全局变量的值,那么形参不能和全局变量的名字相同,否则达不到修改的目的。在这里可以使用指针。

2、今天在linux(fedora)下写操作文件的程序,但是文件中第一次写入时有数据,在以后就没有数据了,总是找不到原因。头的一句话惊醒我了,我没有关闭文件。网上文章说,linux下不用关闭文件,系统会自动将缓冲区中的数据写入到文件中。但个人觉得还是写上好,万一遇上今天的情况那不就,,,

3、在进行socket编程时,进行下次连接之前首先需要关闭当前连接,然后再新建socket标识符,重新连接服务器。在这里如果重新建立socket标识符,但是没有关闭以前的标识符的话也不能连接。现在还不明白是怎么回事,留待以后解决。或者某位读者给我写下也可。O(∩_∩)O

4、出现了“double free or corruption (top)..."这样的错误。在百度、谷歌以后,都说是重复free问题。仔细查看代码以后,发现原来是文件指针问题。在循环体外创建了一个文件指针并打开。在一次运行以后正确关闭。但是当第二次运行时仍然会close文件,问题就出在这,关闭不存在的文件。

5、二叉树的先序、中序、后序遍历是按照根结点来定义的。即,如果先遍历跟结点,那么就是先序遍历。

6、break的作用范围(退出一层循环)

代码1:

int main(void)
{
int i = 0;

while(1)
{
i++;

if(16 == i)
{
break; //break以后直接跳出while循环
}
}

printf("End of function\n");

return 0;
}
代码2:

int main(void)
{
int i = 0;

while(1)
{
i++;

switch(i)
{
case 1:printf("1\n");
case 2:printf("2\n");
case 3:break; //break只是结束switch并不能跳出while循环
case 4:
case 5:i = 0;printf("2345\n");
}
}

printf("End of function\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: