C语言程序设计(黄迪明)——第二章

1、位运算

2、

 

int main()
{
   unsigned a, temp;

   printf("请输入十六进制:\n");//按十六进制输入
   scanf("%x",&a);
   temp=a>>3;  //a右移三位,放入temp
   temp&=0x1f; //temp=temp&0x1f   取temp的低五位
   printf("a=%x,temp=%x",a,temp);
}

3、类型转换

(1)、不同级

i|j&k*m ————>i|(j&(k*m))

(2)、同级

i/j*k————>(i/j)*k  结合性:从左到右

*p-- ————>*(p--)  结合性:从右到左

(3)、特殊

*p*p ————> (*p)*p:取出p指向的内存单元内容,然后与p相乘

判断是否是闰年?

//判断是否是闰年?
//方法:某年是否能被4整除但不能被100整除,或者能被400整除,则是闰年
void main()
{
    int year,leap;

    printf("请输入年份:\n");
    scanf("%d",&year);
    leap=year%4==0&&year%100!=0||year%400==0;//leap=(year%4==0)&&(year%100!=0)||(year%400==0)
    if(leap)
    {
        printf("%d 是个闰年!",year);
    }
}

&&与&的区别

x=y=z=1;

--x&&++y||z++;    ((--x)&&(++y))||(z++)

&&优先级>||,故先运行(--x)=0  &&(++y), (++y)不必运行

x=0  y=1 z=2 

4、常量

(1)、整形常量

内存中存放:

                 数值以“补码”形式存放,最左一位为符号位。

表示:

十进制常量,数值由小到大:int ——>long int ——>unsigned long int

八进制和十六进制,数值由小到大:short int——> int ——> unsigned int——>long int——>unsigned long int 

还可以有后缀: 无符号型后缀(u/U)和长型后缀(l/L) 

(2)、浮点型常量

内存存放:  按指数形式存放,把一个浮点数分成小数部分(规范化)和指数部分分别存放

表示:

十进制数形式:由数字和小数点组成(必须有小数点,且小数点前或后必须有数字)

指数形式:字母e/E前必须有数字,且e后面的指数必须为整数

               规范化指数形式:在字母e/E之前的小数部分,小数点左边应有一位(且只能有一位)非零数字

 双精度型的:不带后缀

 单精度型的:带有F/f后缀,又叫浮点型

 长双精度型:带有L/l后缀

(3)、字符型常量

表示:   单引号'' 括起的一个字符

      特殊: 转义字符: 

  • 简单转义字符:
  • 八进制转义字符:\ + 1~3个八进制数字
  • 十六进制转义字符:\ + x + 1~2个十六进制数字

存放形式:

不是将该字符本身放入内存中,而是将其对应的ASCII码值放到内存中

  字符常量和字符串常量 

"ABC\n\\TH\064\?"  ==“(A)(B)(C)(\n)(\\)(T) (H)(\064)(\?)”长度 9,占用内存单元数 10。需要注意的是,在该字符串中有转义字符,\n 为换行,\\为反斜杠字符,\064 为八进制转义字符,对应 ASCII 码为 52 的字符'4'。

x=−30*5%−8;    //运算顺序:从左到右     ((-30)*5)%(-8)=-150%-8=-6

x=−6。第二个运算是取余操作。

(4)、字符串常量

表示:  双引号“”括起的零个或多个字符

存放形式: 在存储字符串常量时自动在后加上'\0'作为字符串结束标志 ,字符数组存放字符串变量

(5)、符号常量

     define:宏定义,变量一般大写形式

     const:其变量值,不可改,且在定义时就初始化

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值