随笔分类 -  编程学习-C/C++

摘要:【导读】介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面、透彻地阐述 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。 引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int... 阅读全文
posted @ 2013-06-21 13:46 jiayouwyhit 阅读(212) 评论(0) 推荐(0) 编辑
摘要:for(初始值赋值操作A;终止条件B;递增操作C) { 循环体D; } 其执行次序为:A->B->D->C->B->D->C->B…….. 直到B条件不满足,则跳出循环体,这里需要着重强调的是:首次初始化之后,也一定要先执行一遍条件B语句。 阅读全文
posted @ 2013-06-21 11:29 jiayouwyhit 阅读(2932) 评论(0) 推荐(0) 编辑
摘要:其一般形式为: 变量=表达式; 赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。 在赋值语句的使用中需要注意: 1.由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式 变量=(变量=表达式); 是成立的,从而形成嵌套的情形。其展开之后的一般形式为: 变量=变量=…=表达式; 例如: a=b=c=d=e=5;按照赋值运算符的右接合性,因此实际上等效于: e... 阅读全文
posted @ 2013-06-21 11:13 jiayouwyhit 阅读(210) 评论(0) 推荐(0) 编辑
摘要:嗷嗷的话:这都是一些细枝末节的东西,我想不做编译器的话,大部分都很难碰到。研究学习这些只是出于对C语言一种偏执狂。 写出来是为了找到和我一样的偏执狂。 在随后的的文章中,首先我写一写191种undefined behavior。不一定是对的,只是我自己的理解。参考的标准是C99.undefined behavior简单来说就是,如果你的程序违反了C标准中某些准则,那么具体会发生什么,C标准没有定义,也就说得到任何奇怪的结果,都是有可能的。比如说整数溢出就是一个undefined behavior。 unspecified behavior简单来说就是,C标准提供了多种可选方案,具体选择哪一个并 阅读全文
posted @ 2013-06-21 08:49 jiayouwyhit 阅读(375) 评论(0) 推荐(0) 编辑
摘要:一.副作用(side effect) 表达式有两种功能:每个表达式都产生一个值( value ),同时可能包含副作用( side effect )。副作用是指改变了某些变量的值。 如: 1:20 //这个表达式的值是20;它没有副作用,因为它没有改变任何变量的值。 2:x=5 // 这个表达式的值是5;它有一个副作用,因为它改变了变量x的值。 3:x=y++ // 这个表达示有两个副作用,因为改变了两个变量的值。 4:x=x++ // 这个表达式也有两个副作用,因为变量x的值发生了两次改变。二.求值顺序点 表达式求值规则的核心在于 顺序点( sequence point ) [ C99 6.5 阅读全文
posted @ 2013-06-21 07:48 jiayouwyhit 阅读(940) 评论(1) 推荐(1) 编辑
摘要:零. 优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It says nothing about the order in which the operands are evaluated. 意识是说优先级规定操作数的结合方式,但并未说明操作数的... 阅读全文
posted @ 2013-06-20 22:07 jiayouwyhit 阅读(1071) 评论(0) 推荐(0) 编辑
摘要:C语言中只有四个运算符(&&、||、?:、,)存在规定的求值顺序。 运算符&&和运算符||首先对左侧操作数求值,只在需要时才对右侧操作数求值。 运算符?:有三个操作数:在a?b:c中,操作数a首先被求值,根据a的值再求操作数b或c的值。 逗号运算符,首先对左侧操作数求值,然后该值被“丢弃”,再对右侧操作数求值。注:分割函数参数的逗号并非逗号运算符。例如,x和y在函数f(x,y)中的求值顺序是未定义的,而在函数g((x,y))中却是确定的先x后y的顺序。在后一个例子中,函数g只有一个参数。这个参数的值是这样求得的,先对x求值,然后x的值被“丢弃”,接着求y的值。C 阅读全文
posted @ 2013-06-20 16:30 jiayouwyhit 阅读(795) 评论(0) 推荐(0) 编辑
摘要:补充自己的一点理解: 1.关于++i 与 i++的区别。 ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别。例如: for(i=0;i y ? 100 : ++y > 2 ? 20 : 30 这个表达式看起来有点吓人。让我们先给出更多的上下文吧: [cpp] view plaincopy int x = 3; int... 阅读全文
posted @ 2013-06-20 13:49 jiayouwyhit 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-04-18 20:43 jiayouwyhit 阅读(253) 评论(0) 推荐(0) 编辑
摘要:BOOL实际上是int类型,对应的值可以是TRUE(实际就是int类型的值1)和FALSE(实际是int 类型的0),包含在windows.h中。bool 才是真正的布尔型数据,只有true 和 false 两个值。 阅读全文
posted @ 2013-04-06 01:05 jiayouwyhit 阅读(167) 评论(0) 推荐(0) 编辑