总结(2)

一、操作符

1.三目操作符

exp1 ? exp2 : exp3

例:

//求两者中较大者
max = (a > b ? a : b)

2.~(按位取反)

3.&(取地址运算符)

4.*(指针运算符)

二、原码、反码、补码

在内存中,整数均用补码来存储,但在打印和使用中都是原码

其中正数的原、反、补码相同

而负数原码 -> 取反 --> 反码 -> 加一 --> 补码

int a = 0;
int b = ~a;

//a : 000...000(32位)
//b : 111...111(补码)
//       减一
//    111...110
//       取反   
//    100...001(原码)
//第一位是符号位,不进行取反 0表示正数 1表示负数

三、EOF(end of file)

文件结束标志 ASCII码值:-1

四、常见关键字

auto  break  case  char  const  continue  default  do  double  else  enum 
extern  float  for  goto  if  int  long  register  return  short  signed  
sizeof  static  struct  switch  typedef  union  unsigned  void  volatile  while

五、typedef

类型重命名

typedef unsigned int uint_32;
//unsigned无符号
    unsigned int num1 = 0;
    uint_32 num2 = 0;

六、static

1.修饰局部变量

使局部变量的生命周期变长,即使定义的局部变量出了作用域依然存在直到程序结束

2.修饰全局变量

改变作用域,即使定义的全局变量只能在源文件内使用,不能在其他源文件内使用(不能被extern调用)

3.修饰函数

改变了函数的链接属性,使其从外部链接属性变为内部链接属性(同全局变量)

七、define定义宏

类似于函数,比函数精简

#define MAX(X,Y) (X > Y ? X : Y)

int MAX(int x, int y)
{   
    if(x > y)
    {
        return x;
    }
    else
    {
        return y;
    }
}

八、指针

1.查看变量的地址

int num = 10;
#  //取出num的地址
printf("%p\n", &num);  //%p打印地址

2.定义指针变量(存储地址)

int num = 10;
int *p;  //p为一个整形指针变量
p = #

例:

int a = 10;   //在0x0012ff40这个位置处存放了10,名为a
int* p = &a;   //将0x0012ff40这个位置的十六进制数存放在p内
*p = 20;   //用*p找到a其中的10,把它换成20

//同样的
char ch = 'w';
char* pc = &ch;
*pc = 'a';

在32位操作系统中,地址占四个字节

在64位操作系统中,地址占八个字节

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值