正文
C语言const函数调用 c语言 const函数
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言中,const如何修饰全局变量、局部变量?有什么好处?
Const主要是为了程序C语言const函数调用的健壮型,减少程序出错.
最基本C语言const函数调用的用法:
const int a=100; b的内容不变,b只能是100也就是声明一个int类型的常量(#define b =100)
int const b=100; //和上面作用一样
const指针和引用一般用在函数的参数中
int* m = a; //出错,常量只能用常指针
int c= 1;const int*pc = c;//常指针可指向常量
const int* pa = a; //指针指向的内容为常量(就是b的值不变)
int const *a = b; //指针指向的内容为常量(就是b的值不变)*p=3//error
int* const a = b; //指针为常量,不能更改指针了如 a++但可以改值*p=3;
从这可以看出const放在*左侧修饰的是指针的内容,const放在*右侧修饰的是指针
本身.
const引用的用法和指针一样
int const a=b; 和指针一样
const int a=b; 和指针一样
但没有 int const a=b 的用法因为引用不能做移位运算,但只是出个warning
const int* const a = b; //综合应用,一般用来传递多维的数组
类如C语言const函数调用:char* init[] = {"Paris","in the","Spring"};
void fun(const int* const a){}
fun(init)//保护参数不被修改
int A(int)const; //是常函数,只能用在类中,调用它的对象不能改改变成员值
const int A(); //返回的是常量,所以必须这么调用 cosnt int a=A();
int A(const int); //参数不能改值,可用在任意函数
int A(const int*);
....
int height() const;//常函数只能由常函数调用
int max(int,int) const;
int Max = max(height(),height());
const int* pHeap = new int;
delete pHeap;
p = NULL;//出错
C语言const函数调用我的解决办法是强制类型转换
const int* pHeap = new int(1);
delete (int*)pHeap;
pHeap = NULL;
const在C语言中有哪些用法?
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C#.net、HC08 C。
(1)可以定义const常量,具有不可变性。
例如:const int Max=100; Max++会产生错误;
(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改;
(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!
如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可!
(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错;
例如: void f(const int i) { i=10;//error! }
C++中const什么意思?
在标准C++中C语言const函数调用,这样定义的是一个常量C语言const函数调用,用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。
const使用(类型):
1、用于指针的两种情况:const是一个左结合的类型修饰符.
int const*A;//A可变,*A不可变
int*const A;//A不可变,*A可变
2、限定函数的传递值参数:
void function(const int Var);//传递过来的参数在函数内不可以改变.
3、限定函数返回值型.
const int function();//此时const无意义
const myclassname function();//函数返回自定义类型myclassname.
4、限定函数类型.
void function()const;//常成员函数,常成员函数是不能改变成员变量值的函数。
扩展资料:
总结:
1、指针本身是常量不可变
(char*) const pContent;
const (char*) pContent;
2、指针所指向的内容是常量不可变
const (char) *pContent;
(char) const *pContent;
3、 两者都不可变
const char* const pContent;
4、其中区别方法:
沿着*号划一条线,
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
5、const修饰函数参数
const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。它可以很好
void function(const int Var); //传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)
void function(const char* Var); //参数指针所指内容为常量不可变
void function(char* const Var); //参数指针本身为常量不可变(也无意义, 因为char* Var也是形参)
参数为引用,为了增加效率同时防止修改。
6、修饰引用参数时:
void function(const Class Var);//引用参数在函数内不可以改变
void function(const TYPE Var); //引用参数在函数内为常量不可变
7、const 修饰函数返回值
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
(1) const int fun1() 这个其实无意义,因为参数返回本身就是赋值。
(2) const int * fun2()
8、调用时 const int *
参考资料:
百度百科——CONST(C中的CONST)
c语言中const 是什么意思,怎么用,什么时候用?
const 表示常量C语言const函数调用,相当于宏定义C语言const函数调用,只能读取,不能修改。
常变量C语言const函数调用:const 数据类型 符号常变量 = 数值
如:const float PI=3.14;
指针常量:
数据类型 *const 指针变量=变量名
如:char *const p="abc";
const修饰的是指针变量,而不是指针的值,所以指针指向的值是可以修改的。
常指针:
const 数据类型 *指针变量=变量名
或者是
数据类型 const *指针变量=变量名
这是指针指向的值就是不可以改变的。
还有一种情况就是指针变量本身不可以修改,指针指向的值也是不允许修改的,就是指针常量和常指针组合,这种称为
常指针常量:
const 数据类型 *const 指针变量=变量名
或
数据类型 const *const 指针变量=变量名
还有一个比较重要的就是常函数:这个我自己还是前一段时间刚刚理解,建议C语言const函数调用你看看这个网页:。
c语言问题,这些函数后边跟个const 啥意思 求解
const 限定符C语言const函数调用,它把一个对象转换成一个常量。
1.》》const与define。两者都可以用来定义常量,但是const定义时,定义了常量C语言const函数调用的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。(小注:可以多次声明,但只能定义一次)
2.》》const与指针和引用。
(a)const与指针。
先来看看下面的几种定义:
intme;
constint*p1=me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向
int*constp2=me;//p2不可变,*p2可变,此时允许*p2来修改其值,但是p2不能转向。
constint*constp3=me;//p3不可变,*p3也不可变,此时既不能用*p3来修改其值,也不能转向
(b)指针和引用的区别很简单,就是引用更简洁,更安全。因为引用声明时必须初始化。 引用更接近const指针,一旦与某个变量关联,就将一直效忠于他。
(c)const指针可以接受const和非const地址,但是非const指针只能接受非const地址。所以const指针的能力更强一些,所以尽量多用const指针,这是一种习惯。
3.》》(a)const与函数。由于2(c),所以经常把函数的形参类型设为const,而且多为const 引用。但是这里有一个限制,不能把不是左值的地址传递给引用。(左值包括变量,数组元素,结构成员,引用,被解除引用的指针等)。 形参是const类型的,说明该函数将不会修改其值,该函数便为const函数。
(b)const与类成员函数。先看看下面这段代码:
constStockland=Stock("hyd");
land.show();
land 是常量,但是类成员函数show无法保证不修改land,所以编译器将拒绝执行该段代码。除非你能保证show像const函数一样,但这需要另外一种语法,即:
void show() const; //声明
void Stock::show() const{} //定义
关于C语言const函数调用和c语言 const函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。