| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 houqing1999 于 2023-5-25 17:33 编辑  
 
//想问一下func2为什么要用const关键字,意义在哪 
 
 
#include <stdio.h> 
#include <stdlib.h> 
 
int global_var1; 
int global_var2; 
static int file_static_var1;                           //另外这里的static和func1函数里面的static作用是不是不一样,如果一样,为什么 
static int file_static_var2; 
 
void func1(int func1_param1, int func1_param2) 
{ 
        static int func1_static_var1; 
        static int func1_static_var2; 
 
        // 输出行参的地址 
        printf("addr of func1_param1: %010p\n", &func1_param1); 
        printf("addr of func1_param2: %010p\n", &func1_param2); 
 
        // 输出静态局部变量的地址 
        printf("addr of func1_static_var1: %010p\n", &func1_static_var1); 
        printf("addr of func1_static_var2: %010p\n", &func1_static_var2); 
} 
 
void func2(const int func2_const_param1, const int func2_const_param2) 
{ 
        int func2_var1; 
        int func2_var2; 
 
        // 输出const参数的地址 
        printf("addr of func2_const_param1: %010p\n", &func2_const_param1); 
        printf("addr of func2_const_param2: %010p\n", &func2_const_param2); 
 
        // 输出局部变量的地址 
        printf("addr of func2_var1: %010p\n", &func2_var1); 
        printf("addr of func2_var2: %010p\n", &func2_var2); 
} 
 
int main(void) 
{ 
        char *string1 = "I love FishC.com"; 
        char *string2 = "very much"; 
 
        // 输出函数的地址 
        printf("addr of func1: %010p\n", func1); 
        printf("addr of func2: %010p\n", func2); 
 
        // 输出字符串常量的地址 
        printf("addr of string1: %010p\n", string1); 
        printf("addr of string2: %010p\n", string2); 
         
        // 输出全局变量的地址 
        printf("addr of global_var1: %010p\n", &global_var1); 
        printf("addr of global_var2: %010p\n", &global_var2); 
 
        // 输出文件内的static变量的地址 
        printf("addr of file_static_var1: %010p\n", &file_static_var1); 
        printf("addr of file_static_var2: %010p\n", &file_static_var2); 
 
        // 输出函数内局部变量的地址 
        func1(1, 2); 
        func2(3, 4); 
 
        return 0; 
}
在这个程序中,`const`关键字用于修饰函数`func2`的参数,表示这些参数是只读的,不能被修改。这样做可以保证在函数内部不意外地修改这些参数值,保证代码的安全性和可靠性。 
 
另外,`static`关键字在不同的作用域中具有不同的意义。在全局作用域中,它表示该变量只能在当前文件中使用,不能被其他文件引用。在局部作用域(函数内)中,它表示该变量是静态局部变量,即该变量不会被销毁,在函数执行完毕后仍然存在,并且下次调用该函数时其值还会保持上一次的结果。 
 
有用请设置最佳答案 
 
 
 |   
 
 
 
 |