请问C语言,常变量const int a=3;和变量int a=3;有什么区别? c语言编程 int *a和int a [ ]有区别吗?

\u5e38\u53d8\u91cf\uff1f const int a = 3; \u6709\u7684\u4e66\u7c4d\u628aa\u79f0\u4e3a\u6807\u8bc6\u5e38\u91cf\uff0c\u6709\u7684\u4e66\u7c4d\u53c8\u628a\u5b83\u79f0\u4e3a\u7b26\u53f7\u5e38\u91cf\uff0c

(1)const char* PI= \u201c3.14\u201d;
(2)const double PI =3.14;
\u7b54\u9898\u4e0d\u6613\uff0c\u4e92\u76f8\u7406\u89e3\uff0c\u60a8\u7684\u91c7\u7eb3\u662f\u6211\u524d\u8fdb\u7684\u52a8\u529b
\u5982\u679c\u6211\u7684\u56de\u7b54\u6ca1\u80fd\u5e2e\u52a9\u60a8\uff0c\u8bf7\u7ee7\u7eed\u8ffd\u95ee
\u60a8\u4e5f\u53ef\u4ee5\u5411\u6211\u4eec\u56e2\u961f\u53d1\u51fa\u8bf7\u6c42\uff0c\u4f1a\u6709\u66f4\u4e13\u4e1a\u7684\u4eba\u6765\u4e3a\u60a8\u89e3\u7b54

int *a\u662f\u5b9a\u4e49\u4e00\u4e2a\u6574\u578b\u6307\u9488\u53d8\u91cfa\u3002
int a [ ]\u6ca1\u6709\u8fd9\u79cd\u5199\u6cd5\u3002
int *a[]
1\u3001\u5b9a\u4e49a\u662f\u4e00\u4e2a\u6570\u7ec4\u3002
2\u3001\u6bcf\u4e00\u4e2a\u6570\u7ec4\u7684\u5143\u7d20\u662f\u4e00\u4e2a\u6307\u9488\uff0c\u6307\u5411\u4e00\u4e2a\u6574\u6570\u3002
(int *)a \u5c06\u6307\u9488\u53d8\u91cfa\u5f3a\u5236\u8f6c\u6362\u4e3a\u6574\u578b\u6307\u9488\uff0c\u8bf4\u660ea\u4e00\u822c\u4e0d\u662f\u4e00\u4e2a\u6574\u578b\u6307\u9488\uff0c\u4e5f\u53ef\u4ee5\u662f\u4e2a\u6574\u578b\u6307\u9488\u3002
int (*a)[]
1\u3001\u5b9a\u4e49a\u662f\u4e00\u79cd\u6307\u9488\u3002
2\u3001a\u6307\u5411\u4e00\u79cd\u6574\u6570\u6570\u7ec4\u3002

\u6269\u5c55\u8d44\u6599\u6570\u7ec4\u7684\u521b\u5efa\uff1a\u5728\u521b\u5efa\u6570\u7ec4\u65f6\uff0c\u6211\u4eec\u5fc5\u987b\u5b9a\u4e49\u6570\u7ec4\u7684\u7c7b\u578b\u548c\u5927\u5c0f\uff0c\u6570\u7ec4\u7684\u5927\u5c0f\u4e0d\u80fd\u4e3a0\uff0c\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\u7c7b\u578b\u90fd\u662f\u76f8\u540c\u7684\u3002
int arr[10];//[]\u5185\u5fc5\u987b\u662f\u5e38\u91cf/\u5e38\u91cf\u8868\u8fbe\u5f0f(3+8)\uff0c\u4e0d\u80fd\u662f\u4e00\u4e2a\u53d8\u91cf(x...)
\u6570\u7ec4\u7684\u521d\u59cb\u5316\uff1a\u5728\u6570\u7ec4\u521b\u5efa\u65f6\uff0c\u6211\u4eec\u4e5f\u8981\u5fc5\u987b\u4e3a\u6570\u7ec4\u521d\u59cb\u5316\u3002
int arr1[3] = {1, 2, 3};
int arr2[] = {1, 2, 3};//\u5728\u8fd9\u91cc\uff0c\u6211\u4eecarr[3]\u91cc\u8fb9\u7684\u6570\u5b57\u53ef\u4ee5\u4e0d\u7528\u5199\uff1b
int arr3[3] = {1, 2};//\u4e5f\u662f\u53ef\u4ee5\u7684\uff0c\u53ea\u662f\u628a\u6700\u540e\u4e00\u4e2a\u6570\u521d\u59cb\u5316\u4e3a0\u4e86\u800c\u5df2
int arr4[3] = {1, 2, 3, 4};//\u662f\u4e0d\u53ef\u4ee5\u7684\uff0c\u4e0d\u80fd\u8d85\u8fc7\u6570\u7ec4\u957f\u5ea6
char arr5[3] = {'a', 98, 'c'};//\u56e0\u4e3a\u662f\u5b57\u7b26\u7c7b\u578b\uff0c\u6240\u4ee598\u5176\u5b9e\u5c31\u662f\u5b57\u7b26'b'
char arr6[] = "abcdef";
\u7279\u70b9
1\u3001\u6570\u7ec4\u662f\u76f8\u540c\u6570\u636e\u7c7b\u578b\u7684\u5143\u7d20\u7684\u96c6\u5408\u3002
2\u3001\u6570\u7ec4\u4e2d\u7684\u5404\u5143\u7d20\u7684\u5b58\u50a8\u662f\u6709\u5148\u540e\u987a\u5e8f\u7684\uff0c\u5b83\u4eec\u5728\u5185\u5b58\u4e2d\u6309\u7167\u8fd9\u4e2a\u5148\u540e\u987a\u5e8f\u8fde\u7eed\u5b58\u653e\u5728\u4e00\u8d77\u3002
3\u3001\u6570\u7ec4\u5143\u7d20\u7528\u6574\u4e2a\u6570\u7ec4\u7684\u540d\u5b57\u548c\u5b83\u81ea\u5df1\u5728\u6570\u7ec4\u4e2d\u7684\u987a\u5e8f\u4f4d\u7f6e\u6765\u8868\u793a\u3002\u4f8b\u5982\uff0ca[0]\u8868\u793a\u540d\u5b57\u4e3aa\u7684\u6570\u7ec4\u4e2d\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\uff0ca[1]\u4ee3\u8868\u6570\u7ec4a\u7684\u7b2c\u4e8c\u4e2a\u5143\u7d20\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1\u2014\u6570\u7ec4

区别在于a值是否可以改变,

这个是常量a, a值不能改变. 如果后续出现a=4;这样的赋值, 编译器会报错.

而int a=3; a值可以改变. 



const相当于圆周率(Pi),这个值你定义了,后面一直都是这个值,不会再变了

const int pi=3.1415926
pi=3.14(错错错)×
不能对常量赋值

int pi=3.1415926
pi=3.14
变量才可以赋值

第一个是不能变的,例如开始a=3,经过其中的运算,如a++,则a运行多次还是等于3或者报错;而后者能变,a等于4/5/6……

常量赋值后不能改变值,变量可以

常量在过程中不能赋值

扩展阅读:学python后到底能干什么 ... const变量存在哪 ... const-string ... c++中<< ... const double pi ... c++编程 ... const变量必须初始化 ... construct ... 常变量const举例子 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网