c++与c语言的区别:const

来源:互联网 发布:r语言读取大数据csv 编辑:程序博客网 时间:2024/06/06 10:46
c语言const特点:1.const修饰的变量是只读的,本质上还是变量;

                                2.修饰的局部变量在栈上分配空间;

                                3. const全局变量在只读存储区分配空间;

                                4.在编译期有用,在运行期间无用;

c++const特点:1.const是在符号表中放入常量;编译时符号表直接替换;

                             2.只有在使用了extern和&时分配存储空间。

                             const int c=5类似于#define c 5,但是又不同于宏定义:

const常量是由编译器处理,还对const常量进行类型检查和作用域检查。宏定义是由预处理器处理,单纯的文本替换。

#include <stdio.h>int main(){    const int c = 0;    int* p = (int*)&c;        printf("Begin...\n");        *p = 5;        printf("c = %d\n", c);        printf("End...\n");        return 0;}
#include <stdio.h>void f(){    #define a 3    const int b = 4;}void g(){    printf("a = %d\n", a);    //printf("b = %d\n", b);}int main(){    const int A = 1;    const int B = 2;    int array[A + B] = {0};    int i = 0;        for(i=0; i<(A + B); i++)    {        printf("array[%d] = %d\n", i, array[i]);    }        f();    g();        return 0;}



c语言运行为c=5,而c++运行c=0;

原创粉丝点击