找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1199|回复: 3

C语言之数据类型1

[复制链接]

1778

主题

5094

回帖

1万

牛毛

论坛管理员

佚名

积分
14675
QQ
发表于 2008-12-26 14:02:35 | 显示全部楼层
想学学C,(*^__^*) 嘻嘻……·

0

主题

13

回帖

17

牛毛

初生牛犊

积分
17
发表于 2009-1-1 17:49:15 | 显示全部楼层 来自 广东省广州市
数据结构学的是C++版本的。

0

主题

11

回帖

17

牛毛

初生牛犊

积分
17
QQ
发表于 2009-1-4 02:52:23 | 显示全部楼层 来自 上海市

刚才笑晕;俄

成语新用法

为了让女儿学好成语,老婆专门给她买了本《成语大词典》。女儿似乎并不感兴趣,看得少。倒是我经常借阅一下,并且努力做到熟读与实践相结合,边温习边运用。一试才知,原来生活处处皆成语:
  找老婆要零花钱——与虎谋皮。

  上个月因我勤做家务,老婆许诺要追加我的零花钱数额——信誓旦旦。无锡交通违章查询

  到这个月却又拒不执行——言而无信。

  我气愤,但不敢发作——忍气吞声。

  同事小李下周结婚,我向老婆开口讨两百块份子钱,老婆看着我——冷若冰霜。

  我说,你到底给不给呀?老婆一扭头,不理我——置若罔闻。

  僵持不下,我只好恳求——低三下四。

  老婆说,你们单位人也太多了,每个月光结婚的就有四五拨——夸大其词。

  我也不反驳,听老婆继续作指示——洗耳恭听。

  老婆说,以后啊,甭管谁结婚,结多少次婚,统统一百块搞定,不许讨价还价—— 一锤定音。

  看来强攻无门,只能智取。我趁老婆午休的时候,从她钱包里掏出一张百元大钞——家贼难防。

  没想到还没揣进自己的口袋,就被老婆发现了——天网恢恢。无锡交通违法查询
  老婆自然是将我一顿臭骂,我只好把那一百元放回她的钱包——完璧归赵。

  一百元的资金缺口,这份子可怎么随——心急如焚。

  正当我为此发愁的时候,传来利好消息:小李跟未婚妻掰了,据说他未婚妻有婚姻恐惧症——峰回路转、柳暗花明。

  本来是缺一百元,现在好,多出一百元,我却更犯愁——庸人自扰。

  我决定去买条好烟慰劳自己——胆大包天。

  后来想想,还是算了,这样做太对不起老婆——幡然醒悟。

  我最终决定把钱退还给老婆,以取悦芳心——作茧自缚、自取其辱。

  当我把钱退给老婆的时候,老婆觉得我从一开始就是想从她手里骗钱花,哪有这么快说结婚又退婚的——平地起浪、无事生非。

  好心没好报,我很生气,大声对老婆说,你太神经质了吧——以卵击石。

  老婆一看我好像是真生气了,这才相信了我——偃旗息鼓。徐州交通违章查询|徐州交通违法查询

  为了鼓励我主动上缴多余资金,老婆决定,从下个月开始,每月给我追加五十元零花钱。我兴奋得身上的每个细胞都在狂跳。等大脑冷静下来后我猛然意识到,老婆这次难道是——故伎重演?

7

主题

71

回帖

111

牛毛

一级牛人

积分
111
 楼主| 发表于 2008-12-26 13:54:50 | 显示全部楼层 |阅读模式 来自 新疆昌吉州
 运算符的种类C语言的运算符可分为以下几类:

  1.算术运算符

  用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

  2.关系运算符

  用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

  3.逻辑运算符

  用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

  4.位操作运算符

  参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

  5.赋值运算符

  用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

  6.条件运算符

  这是一个三目运算符,用于条件求值(?:)。

  7.逗号运算符

  用于把若干表达式组合成一个表达式(,)。

  8.指针运算符

  用于取内容(*)和取地址(&)二种运算。

  9.求字节数运算符

  用于计算数据类型所占的字节数(sizeof)。

  10.特殊运算符

  有括号(),下标[],成员(→,.)等几种。

  优先级和结合性

  C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。 而在一个运算量两侧的运算符优先级相同时, 则按运算符的结合性所规定的结合方向处理。C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合, 执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。 C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

  算术运算符和算术表达式基本的算术运算符

  1.加法运算符“+”加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有右结合性。

  2.减法运算符“-”减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。

  3.乘法运算符“*”双目运算,具有左结合性。

  4.除法运算符“/”双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

void main()
{
  printf(\"\\n\\n%d,%d\\n\",20/7,-20/7);
  printf(\"%f,%f\\n\",20.0/7,-20.0/7);
}
   双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

printf(\"\\n\\n%d,%d\\n\",20/7,-20/7);
printf(\"%f,%f\\n\",20.0/7,-20.0/7);

  本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型。

  5.求余运算符(模运算符)“%”双目运算,具有左结合性。要求参与运算的量均为整型。 求余运算的结果等于两数相除后的余数。

void main(){
  printf(\"%d\\n\",100%3);
}

  双目运算,具有左结合性。求余运算符% 要求参与运算的量均为整型。本例输出100除以3所得的余数1。

  自增1,自减1运算符

  自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: ++i i自增1后再参与其它运算。--i i自减1后再参与其它运算。

i++  i参与运算后,i的值再自增1。
i--  i参与运算后,i的值再自减1。

  在理解和使用上容易出错的是i++和i--。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。

void main(){
int i=8;
printf(\"%d\\n\",++i);
printf(\"%d\\n\",--i);
printf(\"%d\\n\",i++);
printf(\"%d\\n\",i--);
printf(\"%d\\n\",-i++);
printf(\"%d\\n\",-i--);
} i<--8
i<--i+1
i<--i-1
i<--i+1
i<--i-1
i<--i+1
i<--i-1 int i=8;
printf(\"%d\\n\",++i);
printf(\"%d\\n\",--i);
printf(\"%d\\n\",i++);
printf(\"%d\\n\",i--);
printf(\"%d\\n\",-i++);
printf(\"%d\\n\",-i--);

  i的初值为8

  第2行i加1后输出故为9;
   第3行减1后输出故为8;

  第4行输出i为8之后再加1(为9);

  第5行输出i为9之后再减1(为8) ;

  第6行输出-8之后再加1(为9);

  第7行输出-9之后再减1(为8)

void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf(\"%d,%d,%d,%d\",p,q,i,j);
}
i<--5,j<--5,p<--0,q<--0
i+i+i--->p,i+1-->i,i+1-->i,i+1-->i
j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);

  这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。算术表达式表达式是由常量、变量、函数和运算符组合起来的式子。 一个表达式有一个值及其类型, 它们等于计算表达式所得结果的值和类型。表达式求值按运算符的优先级和结合性规定的顺序进行。 单个的常量、变量、函数可以看作是表达式的特例。
  
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-27 17:15 , Processed in 0.246775 second(s), 50 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表