C语言基础知识小结

作者:DayInAI 日期:20190125

一、C相关函数小结

1)Void* Memset(void *ptr, int value, size_t num)
将ptr所指向的内存区的前num个字节值设置为value,然后返回指向ptr指针。


2)Linux设备驱动之Ioctl控制,在用户空间,使用ioctl系统调用来控制设备。
      int ioctl(int fd,unsigned long cmd,...)
      fd: 文件描述符  cmd: 控制命令  ...: 可选参数:插入*argp,具体内容依赖于cmd。


3)extern int strcmp(const char*s1,const char*s2):比较两个字符串,设这两个字符串为    str1,str2,
若str1==str2,则返回零;
若str1<str2,则返回负数;
若str1>str2,则返回正数。


4)int atoi(const char* nptr):
参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,
之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则返回零。


5)运算符
循环左移:左边对象移动右边指定位数(低位补零)
循环右移:左边对象向右移动指定位数(值为正高位补零、值为负高位补一)

运算符优先级:

二、static的作用


第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 


第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 


第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0; 


(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修饰 
(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)

在C++中static关键字除了具有C中的作用还有在类中的使用 ,在类中,static可以用来修饰静态数据成员和静态成员方法 
静态数据成员 
(1)静态数据成员可以实现多个对象之间的数据共享,它是类的所有对象的共享成员,它在内存中只占一份空间,如果改变它的值,则各对象中这个数据成员的值都被改变。 


(2)静态数据成员是在程序开始运行时被分配空间,到程序结束之后才释放,只要类中指定了静态数据成员,即使不定义对象,也会为静态数据成员分配空间。 


(3)静态数据成员可以被初始化,但是只能在类体外进行初始化,若为对静态数据成员赋初值,则编译器会自动为其初始化为0 
(4)静态数据成员既可以通过对象名引用,也可以通过类名引用。


静态成员函数 
(1)静态成员函数和静态数据成员一样,他们都属于类的静态成员,而不是对象成员。 


(2)非静态成员函数有this指针,而静态成员函数没有this指针。 


(3)静态成员函数主要用来方位静态数据成员而不能访问非静态成员。

猜你喜欢

转载自blog.csdn.net/TheDayIn_CSDN/article/details/86583973