hyqd.net
当前位置:首页 >> Const int A=5和DEFinE A 5;有什么区别啊? >>

Const int A=5和DEFinE A 5;有什么区别啊?

const int a = 5;这样定义了一个常量,即a得值是常值5,不可再改变,例:a = 1;这样写,就是错误的#define a 5//前面有'#'号,后面没有';'号这样是一个宏定义,宏定义会在预编译的时候,由编译器将所有a出现过的地方,都用5替换,然后再编译成可执行的程序,该过程出现在预编译宏定义并不能检查类型对于常量,编译器会进行类型匹配,在程序运行时一直存在

const int a[5]是定义一个5个int大小空间常量的数组 也就是a[5]中的所有数据都是常量,只读不可改变 int a[5]只是定义了一个5个int大小空间的数组 数组中数据是可变的

从其他地方拷贝来一大串解释估计对你也没帮助.总结一下最核心的不同:#define LEN 5:预编译语句,在编译器编译之前所有出现LEN的地方被替换为5,然后编译器才编译,因此无法调试.const int LEN = 5 :常量定义语句,不同于宏,他不会被编译器展开,常量LEN在内存中有地址的,调试时能够看到这个地址,所以可以调试.

区别很大 前者 a就是一种变量类型了 所定义的变量是指向5个整型元素的数组 后者就不用说了吧 下面是个范例 帮助你理解#include void main() { typedef int a[5]; int i; a b={1,2,3,4,5}; for(i=0;i printf("%d\n",b[i]); }

int a=5; //a可以被重新赋值 const int b=5; //b不可以被重新赋值,如果有被赋值情况会报错 对于一些常量来说都加const,避免自己写程序时候误操作.

const 是修饰类型为不可改变的.而宏定义是一种替换例如 const int a=5;让变量a数值不变#define N 5int b=N;b实际是5,将N替换为5.

const变量是指常量.即恒定的变量,即不可改变的变量.比如const int a = 10; 那么你在后面就不可以改变a的指.又比如const int *a;指的这个指针不会改变它所指向的内容 int b;再比如int* const a = &b;指的这个指针只能指向b的地址,而

#define n 5只是简单的替换 和int n=5 区别在于int n=5 带有类型检查

而const 在定义指针时,const int *a和int const *a才有区别.const int *a 表示a只能只想常量的int;int *const a 表示a是一个常指针,只能指向某一固定的int变量.

没有区别的,都是表示不可改变数值的int常量.而const 在定义指针时,const int *a和int const *a才有区别.const int *a 表示a只能只想常量的int;int *const a 表示a是一个常指针,只能指向某一固定的int变量.

网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com