c语言中const用法

在c语言中const常被用来修饰常量,即被赋值后无法被修改的量。const在c语言中常有一下用法。

1.修饰常量

const int a = 10;

const用法如上,整型a被const修饰,在后续无法改变a的值否则会报错。

2.修饰地址

int main()
{
	int a = 0;
	int b = 1;
	const int* p = &a;//const修饰*p,无法通过*p改变a的值。
	int* const q = &b;//const修饰q,无法给q赋新的地址。
	q++;
	(*p)++;
	return 0;
}

该点要特别注意const的位置,不同位置有不同效果。 

3.修饰函数返回值

const int test(int a,int b)//返回值
{
    return (a + b);
}

const int* test(int a,int b)//返回地址
{
    int c = a + b;
    return &c;
}

const修饰返回值个人感觉作用不大,因为一般都要再创建一个参数去接受这个返回值,而接受返回值的变量如果没有被const修饰的话是可以改变的。

4.修饰函数参数

//传值传参:传的参数是原参数的拷贝,生命周期只在该函数中,不会影响原函数
//传址传参:传的参数是原来变量的地址,可以通过地址改变main函数的值。

int add(const int a,const int b)//传值传参
{
    return (a+b);
}

int add(const int* a, const int* b)//传址传参
{
	int c = *a + *b;
	return c;
	//return *a += *b;
    //错误写法
}

int main()
{
    int c = 0;
    int d = 0;
    int f = add(c,d);
    return 0;
}

 传值传参个人感觉作用也不太大,因为,a和b是c和d的拷贝,a和b的改变并不会影响main函数中c和d的值,所以我感觉用不用const修饰参数在传值传参中影响并不大。如果运用传址传参,且不想通过该函数修改参数,则务必要用const修饰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值