C-038.const关键字

来源:互联网 发布:网络用语 简写 编辑:程序博客网 时间:2024/04/29 14:15
const 说明定义的变量是只读的

1.const修饰一个普通变量,表示这个变量是只读的,不可以修改的
const的位置与其类型的位置是可以调换的

2.const 修饰数组,表示数组是只读的,必须定义的时候进行初始化

3.const 修饰指针的时候,如果const放在*前面,表示指针指向的内容是只读的,不可以通过指针修改它所指向的存储内容
如果const在*后面说明指针本身是只读的,不能改变指针的指向

4.const 修饰形参:保证这个形参不会被函数修改
同时也可以告诉函数的调用者,本函数不会修改它里面的内容
可以提高函数可读性

5.const修饰函数返回值说明它的返回值不能修改


void sum(const int num1,int num2){/*    4。修饰形参:保证这个形参不会被函数修改    同时也可以告诉函数的调用者,本函数不会修改它里面的内容    可以提高函数可读性*/    //num1 = num2; 会报错,因为num1已经被修饰了,只读    printf("%d\n",num1);}const char * strtest(){    //5.const 作为函数返回值说明它的返回值不能修改    return "hello";}//argc 说明当程序启动时候,从控制台传入的参数的个数//argv 从控制台传入的参数的值int main(int argc, const char * argv[]) {        //1.const 修饰普通变量    int const a = 10;    const int b = 20; //可以和数据类型调换位置    //a = 20;         这行会报错,const修饰后,不能修改,只能读取    printf("%d,%d\n",a,b);        //2.const 修饰数组    int const str[] = {1,2,3};    const int str1[] = {4,5,6};    //str[0] = 0; 报错,不能修改        //3.const 修饰指针    //3.1const 放在*前面,表示所指向的内容不能改变    int c = 30;    int const *p = &c;    //const int *p = &c; 也可以调换位置    //*p = 31;  报错,不能修改        //3.2const 放在*前面,表示所指向的地址不能改变    int d = 40;    int * const p1  = &d;    *p1 = 50;   //可以修改指向的内容    //p1 = &c;  报错,不能改变指向        const int * const p2 = &c; //全都只读,不管是指针还是指向的内容    // *p2 =60;    // p2 = &d;        //5.const 作为函数返回值说明它的返回值不能修改    const char *strs = strtest();//需在前面加const,否则会报警告    printf("%s\n",strs);    return 0;}


0 0
原创粉丝点击