c字符

&&:如果第一个不成立,后面不判断。

||:如果第一个成立后面一个不判断。

位与& 位或| 取反~ 位异或^ 左移<<  右移>>

 

常量都是有符号的

unsigned int mask = 0x80000000;//掩码

 

与运算:

1.0特定位(mask中特定位置为0,其他位为1,s=s&mask)。

2.取某数中指定位(mask中特定位置为1,其他位为0,s=s&mask)。

 

1111 1111 1111 1111 1111 1111 1111 1111>>32-(n-m+1)

n   m

32-(n-m+1)

0000 0000 0000 0000 0000 0000 1111 1111<<(m);

unsigned int mask = ((~0)>>(32-(n-m+1))<<m;

 

有符号  右移拿符号来补位

        左移拿0来补位

 

定义为无符号  左移,右移都拿0来补位

 

按位或运算符‘|’

常用来将源操作数某些位置置1

 

 

异或

int a=5;

int b=6;

 

交换位置:

a=a^b;

b=a^b;

a=a^b;

 

a=a+b;

b=a-b;

a=a-b;

 

 

1.使特定位的值取反

2.不引入第三变量,交换两个变量的值

 

int *p;

scanf(“%d”,p); printf(“%d\n”,*p);

p指向的空间里赋值。

 

随机指向一块内存的指针叫做野指针,会导致内存泄漏

内存泄漏1.指向一块不可访问的内存。

         2.指向一块已经释放的内存。

 

 

字符串认知1.字符串就是首字符的地址

           2.字符串函数①字符串比较函数:strcmp,strncmp

                      ②字符串拷贝函数:strcpy,strncpy

                       ③长度函数:strlen

                      ④字符串连接函数:strcat

 

不能把形参作为工作变量

 

如何避免野指针:  通常我们需要将指针初始化为NULL,用完后也为其赋值为NULL

给指针变量赋初值:

方法一:char * p = (char * )malloc(sizeof(char));

方法二:char * p = NULL;

给数组赋初值:

方法一: int a[10] = {0};

方法二: memset(a, 0, sizeof(a));

memset函数有3个参数:第一个是要被设置的内存起始地址;第二个是要被设置的值;第三个是要被设置的内存大小,单位为字节;

给结构体指针赋初值:

方法一: pstu = (struct student *)malloc(sizeof(struct student));

常见错误: pstu = (struct student *)malloc(sizeof(struct student *));

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值