自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创

不能忽视宏定义中的空格//#define f (x) ((x)-1) f 表示 (x) ((x)-1)#define f(x) ((x)-1)宏不是函数#define abs(x) (((x)>=0)?(x):-(x))#define max(x,y) ((x)>(y)?(x):(y))宏定义中的括号作用是 预防引起与优先级有关的问题当一个操作数在两处被用到,被两...

2019-08-06 19:28:47 120

原创 连接有关问题

连接器在C语言中。一个重要的思想就是分别编译。即若干个源程序能够在不同的时候单独进行编译。然后在恰当的时候整合到一起。​ 典型的连接器把由编译器或汇编器生成的若干个目标模块,整合成一个被称为加载模块或可运行文件的实体,该实体可以被操作系统直接运行。当中,某些目标模块是直接作为输入提供给连接器的;而另外一些目标模块则是依据连接过程的须要,从包含有类似printf函数的库文件里取得的。...

2019-08-06 18:46:35 184

原创 整数溢出

当两个运算符均为有符号整数时,则会存在整数溢出的问题如两个非负整数相加 a+b解决办法将两个整数强制转换为无符号整数if((unsigned)x+(unsigned)y>INT_MAX) complain();//INT_MAX为最大整数值不进行强制转换if(x>INT_MAX-b) complain();...

2019-08-06 18:38:32 3130

原创 运算符运算顺序

求值顺序区别于运算符优先级c语言中只有四个运算符存在规定的运算顺序&& || ?:和,&&和||首先对左侧操作数求值,只有需要时才对右侧操作数求值(a>b)&&(c>d)先计算a>b的值,只有当a>b值为真时才计算c>d的值?:运算符运算顺序:a?b:c先计算a的值,再根据a的值计算b或c的值,...

2019-08-06 18:36:48 2841

原创 缓冲区处理

定义数组int a[10] 数组下标为0~9,不包含下标10。//设置数组a中所有元素为0int a[10],i;for(i=0;i<10;i++){ a[i]=0;}编写函数bufwrite,该函数的功能是将长度无规律的输入数据送到缓冲区,送到一块能够容纳N个字符的内存中,每当这块内存被填满时,就将缓冲区的内容写出#define N 1024static char ...

2019-08-06 16:22:09 295

原创 字符串拼接

char * r, *malloc();//字符串s和t的长度之和再加一,多分配一个空字符的空间r=malloc(strlen(s)+strlen(t)+1);if(!r){ //分配内存失败所需做的处理 complain(); exit(0);}strcpy(r,s);strcat(r,t);/*合并后的操作*/free(r);...

2019-07-27 20:37:21 118

原创 数组与指针

c语言中只有一维数组,而且数组大小必须在编译期就作为一个常数确定下来(C99标准允许变长数组,GCC编译器也实现了变长数组)。c语言数组中元素可以时任何类型的对象,包括数组对象,因此可以仿造出多维数组对于数组,只能做两件事确定该数组的大小获得指向该数组下标为0的元素的指针其他操作,即使使用下标操作,实质上仍是指针运算。如果指针指向的是数组中的一个元素,那么给这个指针加n,就能够...

2019-07-27 20:34:09 147

原创 悬挂else

对于问题,当x为0时,若y也为0,则输出错误,否则不做任何操作,当x不为0时,将x和y之和赋给z。考虑下面程序段if(x==0) if(y==0)printf("error");else{ z=x+y;}看上去似乎没问题,但由于if,else结合是根据就近原则,因此上述程序段重新调整后:if(x==0){ if(y==0) printf("e...

2019-07-27 18:57:30 640

原创 c语言 语法问题

语句结束标志的分号多写一个分号if(x[i]>big) big=x[i];与if(x[i]>big); big=x[i];//相当于//if(x[i]>big){}// big=x[i];遗漏分号情况一 ```c if(n<3) return temp=x[0]; x[0]=x[1]; x[1]=temp; //等同于...

2019-07-27 14:28:43 142

原创 运算符优先级

c语言优先级做个总结表,从上到下优先级递减运算符 结合性 ()[] -&gt; . 自左向右 ! ~ ++ -- - (type) * &amp; sizeof 自右向左 * / % 自左向右 + - 自左向右 &lt;&lt; &gt;&gt; 自左向右 &lt; &lt;= &gt; &gt;= 自左向右 == != ...

2018-11-05 16:50:52 913

原创 语法陷阱 理解函数声明

思考一条语句 (*(void(*)())0)();首先,最简单的单个变量的声明,如float f,g;表示党对其求值时,表达式f和g的类型为浮点数类型,同理函数和指针类型的声明float ff();    表达式ff()求值结果是一个浮点数float *p;      *p是一个浮点数,也就是p是一个指向浮点数的指针。将以上形式结合起来,分析下面两个声明:float *f();...

2018-11-05 15:52:38 149

原创 读c陷阱与缺陷,作为自己的读书笔记

词法问题1:=为赋值符号      ==为比较符号例如:x=y是将y的值赋给x          x==y则是判断x和y是否相等(这个问题我刚学编程甚至大学毕业的时候还是犯错)2:&amp;和|是按位运算符      &amp;&amp;和||是逻辑运算符3:词法分析中的贪心法         如果输入流截止至某个字符之前都已经被分解为一个个符号,那么下一个符号将包...

2018-10-30 15:36:06 118

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除