局部变量与全局变量在声明时的注意事项

/* ============================================================================ Name: TestVariable.c Author: lf Version: Copyright : Your copyright notice Description : 局部变量与全局变量在声明时的注意事项全局变量只能要常量赋值,但是局部变量可用常量和表达式以及函数赋值.这是为什么呢?程序在开始执行时需要用适当的值来初始化全局变量,所以初始值必须保存在编译生成的可执行文件,所以初始值在编译的时候就需要计算出来.所以如果这么初始化全局变量:double pi2=acos(-1.0);需要在程序运行时调用acos函数才能计算出对应的结果.在这里主要是要区分编译时和运行时的两个阶段.为简化编译器C语言规定:全局变量只能用常量表达式来定义.否则报错:initializer element is not a constant expression如果定义全局的变量:int minute=480;int hour=minute/60;也会报同样的错误.这是因为虽然在编译时计算出hour的值是可能的,但是minute/60不是常量表达式同样不满足语法规范. ============================================================================ */#include <stdio.h>#include <stdlib.h>#include <math.h>double pi1=3.14159;//错误的,提示如下://initializer element is not a constant expression//double pi2=acos(-1.0);//int hour=minute/60是错误的,提示如下://initializer element is not a constant expression//int minute=480;//int hour=minute/60;int main(void) {printf("pi1=%f\n",pi1);//printf("pi2=%f\n",pi2);double pi3=acos(-1.0);printf("pi3=%f\n",pi3);//printf("minute=%d\n",minute);//printf("hour=%d\n",hour);return EXIT_SUCCESS;}

,看自家总在期待,不知将来好歹,新乐吧总在不断等待,

局部变量与全局变量在声明时的注意事项

相关文章:

你感兴趣的文章:

标签云: