C语言篇之const关键字与函数传参

1.const 关键字在C语言中用来修饰变量,表示这个变量是常量(在有的编译环境下,const修饰的变量也能修改(有的放在了.data段),但是const更多的是传递一种信息告诉编译器和读程序的人,这个变量不应该也不必去修改)。
const修饰指针的四种形式
第一种:const int *p;p本身不是const的,但是p指向的内容是const的。
第二种:int const *p;和第一种一样,p本身不是const的,但是p指向的内容是const的。
第三种:int * const P;P是const的,但是P指向的内容不是const的。
第四种:const int * const P;P是const的,P指向的内容也是const的。
注意:在函数的形参声明的时候要把const当成一个必要的东西,不是可有可无的,通常输入型参数要加const,输出型参数不加const。
2.函数传参
数组作为函数的形参时,实际上传递的不是整个数组而是数组的首元素的首地址,数组作为函数形参时,[]里面的数字是可有可无的(因为数组名做形参传递的实际只是一个指针)。
void func(int a[])
{
printf(“数组的大小 = %d.\n”,sizeof(a));
}
int main(void)
{
int a[20];
func(a);//4,因为a在func内部就是指针而不是数组,在子函数内,a传进来的是数组的指针(首地址)
return 0;
}
结构体变量作为函数的形参时,实际上和普通变量传参时的表现一样,只是结构体一般都很大,如果直接用结构体变量进行传参那么函数的调用效率就会很低,一般是传变量的指针过去。

本博文只是作为自己的一个笔记,如果能帮助其他人更好,若有疑问欢迎指出,欢迎加QQ 1922546282,共同讨论与学习。

猜你喜欢

转载自blog.csdn.net/Allone2333/article/details/81257822
今日推荐