摘要:
我们在写C程序时,经常使用scanf函数,让用户输入数据,可是有时候会出现一些很奇怪的问题。例如,下面的程序是一个简单的四则运算:#include int main(){char ope = '\0';//操作符+ - * /int para1 = 0, para2 = 0, result = 0;... 阅读全文
摘要:
在谈&&和||两个运算符的短路运算之前,先看一段程序:#include int main() {int para1 = 1, para2 = 2, para3 = 3, para4 = 4;int r1 = 1, r2 =1;(r1 = para2 para4);printf("r1 = %d, ... 阅读全文
摘要:
先看下面一段程序:文末会给大家推荐几本好书,希望能够需要的朋友一点帮助!#include int main(){int i = 123;printf("%d\n",printf("%d",printf("%d",i)));return 0;}printf函数里面又嵌入了printf函数,你认为此段程... 阅读全文
摘要:
朋友们对malloc函数应该是比较熟悉了,此函数功能是分配一段内存地址,并且将内存地址给一个指针变量,最后记得再调用free函数释放这段内存地址就可以了,标准的流程对吧,好像没什么问题。但是按照此标准流程,下面的程序却有个奇怪的现象:#include #include #include int ... 阅读全文
摘要:
内存泄露的概念大家可以自行百度下,本文不做阐述。本文要讲的是在程序中分配了内存,但是最后没有使用free()函数来释放这块内存,会导致内存泄露吗?比如有如下代码:#include int main() {char *p = (char *)malloc(1); if(NULL == p)... 阅读全文
摘要:
strcpy()函数应该是我们用的比较常用的一个函数,基本功能是将一个字符串拷贝到我指定的内存空间。但是要复制的字符串长度超过这段内存空间的话,结果可能是未知的。比如以下的程序:#include #include int main(int argc, char *argv[]){ int ... 阅读全文
摘要:
C语言面试经常会考如下一道题,哪里有错误:#include int main() { char string[100] = {'\0'}; gets(string); printf("输入的字符串是:%s \n", string); return 0; } 这段... 阅读全文
摘要:
C语言的printf函数处理的参数顺序是从右向左的,例如如下程序:#include int main() { int a = 1, b = 2, c = 3; printf("(a + b + c)的值是%d, b的值是%d, c的值是%d\n", a+b+c, (b = b +... 阅读全文