c++(2)

Const在C(C++)中的作用:

1:用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查。

2:Const修饰函数形式参数,输入参数为自定义和抽象数据类型时,为”const&传递”。

例:void fun(A const &a)

即加入了引用,变为引用传递。

3:const修饰函数的返回值:如给”指针传递”的函数返回值加const,z则返回值不能被直接修改,且返回值只能被赋值给加const修饰的同类型指针。

例:const char *Getchar(void){};

const char *ch = Getchar();

4:const修饰类的成员函数(函数定义体):任何不会修改数据成员的函数都应用const修饰,防止修改数据成员或调用非const成员函数,该方法实现如下:

例:int Getcount(void) const;

 

static在C(C++)中的作用:

1:在函数体中,一个被声明为静态的变量在这一函数被调用的过程中维持其值不变。

2:在模块内,(但在函数外),一个被声明为的变量可以被模块内所有函数访问,但不能被模块外其他函数访问,他是一个本地的全局变量。

3:在模块内好,一个被声明为静态的函数只能被这一模块的其他函数调用。那就是限制在声明它的模块的本底范围内使用。

 

全局变量及局部变量与静态变量的区别:

局部变量变为静态变量改变了它的储存方式,即改变了它的生存期;

全局变量改变为静态变量后改变了它的作用域,限制了它的适用范围。

且static变量只初始化一次,static函数在内存中仅有一份,而普通函数在每次调用时都复制一次。

 

sizeof与strlen的区别

1.sizeof是操作符,strlen是函数。

2.sizeof操作符的结果类型是size_t,他在头文件中的typedef为unsignedint类型,该类型保证能容纳实现所建立的最大对象的字节大小。

3.Sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以”\0”结尾的。

4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。

5*.sizeof所求的值在编译时就计算过了,即sizeof(x)可用来定义数组维数。Strlen的结果在运行时才计算。

  1. sizeof常见形式:sizeof(int)或sizeof(x),即因为sizeof为操作符。strlen计算字符串数组长度结果为写入字符串的长度,而sizeof计算的是数组所占内存空间的大小;strlen计算指针指向的字符串的长度,而sizeof计算的时指针占用的内存空间大小。  

 

sizeof的用途

1.与储存分配和I/O系统那样的例程进行通信。

例:void* malloc(szie_t size);

Szie_t fread(void* ptr,size_t size,size_t nmemb,FILE* stream);

2.查看某个类型的对象在内存中所占的单元字节。

例:void* memset(void* s,int c,sizeof(s));

3.在动态分配一对象时,可以让系统知道要分配多少内存。

4.便于一些类型的扩充,由于操作数的字节数在实现时可能出现变化,建议在涉及操作数字节大小时用sizeof来代替常量计算。

5.如果操作数是函数中数组形参或函数类型的形参,则sizeof给出的是其指针的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值