网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月03日漏签0天
c语言吧 关注:801,871贴子:4,377,175
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 首页 上一页 1 2 3 4
  • 50回复贴,共4页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

回复:【入门贴】老是有人问我看什么书。c与指针。来一起看~~~

  • 取消只看楼主
  • 收藏

  • 回复
  • 御宅小受
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
条件操作符
条件操作符接受三个操作数。他也会控制字表达式的求值顺序。
expression1?expression2:expression3
条件操作符的优先级非常低,所以它的各个操作数即使不是用括号,一般也不会有问题,但是为了清楚起见,还是加上括号的好。(不然自己写的也会看不懂)
首先计算的是expression1如果他是真的那么整个表达式的值就是expression2,如果他是假的那么整个表达式的值就是expression3,同时expression2不会求值。
这个东西看着没用实际上,减少了很多代码量。
if(a>5)b=3;else b=4;这个可以写成b=(a>5)?3:4;


  • 御宅小受
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
逗号操作符
主要就是把两个语句分开。返回值是最后一个表达式的值。
用法的话,我只会在循环里面用:
int i=0;
for(;i<10;j++,i++){......}
这样的化,j++和i++都会执行
while(count=10,b=10,a>0){...}
和上面那个一样。
以上所说的是操作符里面最基础的东西,没有什么难度,最比较容易混的是++和--。这个要记住的是每一个变量只占一个地方,改变了是不能变回去的。所以先计算还是先赋值很重要。就是说操作符的位置很重要。还有就是三目运算符恨常用,尽量使用。


2026-06-03 18:10:12
广告
不感兴趣
开通SVIP免广告
  • 御宅小受
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
布尔值
c并不具备显式的布尔类型,所以使用整数来替代。其规则是:
零是假的,任何非零值都是真的。然而没有说1这个值比其他的非零值更真。
警告:
#define FALSE 0
#define TRUE 1
第一对:if(flag==FALSE)和 if(!flag)
第二对:if(flag==TRUE)和 if(flag)
当flag是任意的整型值的时候,第二对语句并不是等价的。只有当flag确实是FALSE和TRUE的时候才是等价的。
所以一般不要定义布尔类型。直接是用0和1,在读代码的时候用正来表示真。


  • 御宅小受
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
左值和右值
这个东西是编译器的设计者搞出来的,看看编译原理会知道。和c语言不是严格的吻合。
左值就是那些能够出现在赋值符号左边的东西。右值就是那些可以出现在赋值符号右边的东西。
之后会有一个表格说着个东西。


  • 御宅小受
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
表达式求值
隐式类型转换
c的整型算术运算总是至少以缺省整型的精度来进行的。为了获得者个精度,表达式中的字符性和端正性操作数再试用之前被转换为普通整型,这种转换称为整型提升。
char a,b,c;
a=b+c;
这个过程中,abc先被提升为普通整型,然后执行加法运算。加法运算的结果将被截短,然后在存储与a中。这个例子的结果和使用8位的算数的结果道理是一样的。但是在下面这个例子里面他的结果接不相同了。
a=(~a^b<<1)>>1;
由于求补和左移操作,所以8位的精度不够。标准要求进行完整的整型求值所以对于这类表达式的结果,不存在歧义性。


  • 御宅小受
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
算术转换
如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数转换为另外一个操作数的类型,否则操作就无法进行,下面的层次体系称为寻常算数转换(usual arithmetic conversion)。
long double
double
float
unsinged long int
long int
unsigned int
int
如果某个个操作数的类型再上面这个列表中的排名较低,那么它首先将转换为另外一个操作数的类型然后操作。
警告:
int a=5000;
int b=25;
long c=a*b;
这个代码在32为的整数计算机上面没有问题,但是在16为的机器上面就会产生溢出。
解决方案就是执行乘法运算之前霸气中一个或者两个操作数转换为长整型。
long c=(long)a*b;
当整型转换为float型的值的时候,也有可能所示精度。float型值仅仅要求6为数字的精度,如果将一个超过6为数字的整型值赋值给一个float型的变量的时候,其结果可能是该整型的近似值。
当float型值转换为整型值的时候,小数部分被舍弃(不进行四舍五入)。如果浮点数的值过于庞大,无法容纳的与整型值中,那么其结果将是未定义的。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2 3 4
  • 50回复贴,共4页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示