您的位置:首页 > 其它

2016.7.16逻辑运算符以及指针

2016-07-16 20:32 465 查看
7.16

逻辑运算符

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

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

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

 

常量都是有符号的

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 *));

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: