C语言易错点
这里整理了一些C语言容易出错的点
LearnerForeveer
这个作者很懒,什么都没留下…
展开
-
C语言--独立的大括号{}
在大括号{}的世界里,有一种不太经常被提起的用法,经常被我们所忽视,今天,我们就来讲讲被我们所忽视掉的大括号的用法。首先,我们来看一段代码:int main(){ int r; r=100; printf("%d\n",r); { int a=10; printf("%d\n",a); }; printf("%d\n",a); return 0;}当我们输入完这段代码之后,编译器界面标出如下的提示信息:嗯?未定义的标识符"a",这个时候,可能就要问了,我们明明原创 2021-11-16 21:04:05 · 5080 阅读 · 4 评论 -
无限malloc
今天看到一道题目,觉得非常有意思,题目如下:#include<stdlib.h>int main(){ char* p=NULL; while(1) { p=(char*)malloc(1); *p=0; } return 0;}我尝试将这段代码写到编译器中去尝试运行,结果如下:程序最终停止运行。而我们可以看到,这段代码中存在一个死循环,在正常的情况下这段代码将一直运行下去。为了深入探究其原因,我决定运行下面这段代码:#include&l...原创 2021-11-16 20:42:57 · 356 阅读 · 2 评论 -
神奇的return i++;
我们先来看下面的一段代码:int test(){ static int a=10; return a++;};int main(){ int a=test(); int b=test(); printf("a=%d b=%d\n",a,b); return 0;}在这样一段代码当中,test函数中的a变量在每次返回之后都执行了++的的操作,所以返回的结果如下:我们来对这段代码进行调试,看看到底发生了什么:当代码走到return的时候a的值还是10我们继续.原创 2021-11-09 16:55:10 · 807 阅读 · 0 评论 -
C语言中全局变量与局部变量的问题
在C语言当中,定义在函数之外的变量称为全局变量(包括main函数),而定义在函数内部的变量我们称之为局部变量,这里需要注意的是main函数内部的变量也是局部变量。 说到变量,我们就不能不说变量作用域,变量的生命周期,以及变量的存储空间的问题,那么我就针对以下这几个问题进行一一的介绍。 1.变量的作用域 那么什么是变量的作用域呢?变量的作用域一般是指一个变量在整个程序当中的有效作用范围。对于局部变量来说,他的作用域主要局限在定义他的函数内部,一旦程序的执行超出了函数的执行范围,那么这...原创 2021-11-09 16:24:52 · 2184 阅读 · 0 评论