c语言定义变量位置
㈠ c语言 关于定义变量的位置的疑问,下面有详细补充,求教
因为你score是在之前定义的,那时候还没有定义i,要在使用变量前定义才可以的。
㈡ 定义全局变量的位置C语言
全局变量可以定义在任何位置, 只要不被包含在任何函数内即可.
理论上作用域是整个项目.
但如果不做声明情况下, 作用域为定义位置到所在文件尾.
每增加一个声明, 作用域会扩展从声明位置到该文件尾范围.
㈢ C语言变量的定义可以放在函数中任意位置吗
不可以放在函数中任意位置
C语言语法规定任意变量的定义,都必须在最开始的地方声明
㈣ c语言位变量定义
在c语言中定义bit型变量,可以使用位域来自定义。
位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:
struct 位域结构名
{ 位域列表 };
其中位域列表的形式为: 类型说明符 位域名:位域长度;
示例:通过位域来计算IEEE754浮点数标准中,单精度浮点数的最大值、最小值以及最小弱规范数。
#include <stdio.h>
typedef struct FP_SINGLE
{
unsigned __int32 fraction : 23;
unsigned __int32 exp : 8;
unsigned __int32 sign : 1;
} fp_single;
int main()
{
float x;
fp_single * fp_s = (fp_single *)&x;
fp_s->sign = 0;
fp_s->exp = 0xfe;
fp_s->fraction = 0x7fffff;
printf ("float 最大数: %le\n",(double)x);
fp_s->sign = 0;
fp_s->exp = 0x1;
fp_s->fraction = 0x0;
printf ("float 最小数: %le\n",(double)x);
fp_s->sign = 0;
fp_s->exp = 0;
fp_s->fraction = 0x1;
printf ("float 最小弱规范数:%le\n\n",(double)x);
return 0;
}
㈤ C语言中的变量名可以在使用之前的任何位置进行定义,这句话为什么错
C语言的C89规范,只支持在作用域起始部分定义变量。就是如果在执行语句的后面定义变量就是错的。
例如:
void
func(void)
{
int
a;//第一个定义,合法。
a=1;//执行一个语句。
int
b;//这个定义不在作用域起始处,编译会报错。
}
C99规范:局部变量可以定义在任何位置。
但是全面支持C99规范的编译器很少。
㈥ 简述在linux环境下进行C语言编程时,变量可以在什么位置定义
C语言的变量
一般在函数的最开始部分
或者在文件的最上面,如果在其他文件要使用该变量,则可以在头文件里面声明
㈦ C语言中的变量可以在使用之前任何位置进行定义吗
理论上是可以在使用之前的任何位置进行定义的,但是一般情况下是定义在第一个语句之前的。当然了,这个第一个语句是相对的,如内层函数中的局部变量或者是临时变量就是定义在内层函数的第一个语句之前的。
㈧ C语言中的变量可以在使用之前任何位置进行定义吗
全局变量,可以在函数外任何位置定义。
局部变量的合法定义位置,依赖于编译器遵循的C规范版本。
1、仅支持C89规范的编译器,只支持在作用域起始部分定义变量。
比如:
voidfunc(void)
{
inta=1;//函数体起始位置。
if(a>0)//其实这个判断没有意义,仅为提供样例。
{
intb=2;//判断部分{}的起始位置。
printf("%d ",b);
}
}
如果写成
voidfunc(void)
{
inta;//第一个定义,合法。
a=1;//执行一个语句。
intb;//这个定义不在作用域起始处,编译会报错。
}
二、支持C99或者部分支持C99的编译器:
局部变量可以定义在任何位置。
之前的第二个例子中的定义方式,在这种编译器下是合法的。
甚至部分支持C99全面的编译器,支持
for(inta=0;a<100;a++)
在for中定义变量。
三、目前大多数编译器,均支持任何位置定义变量,但仅有少部分支持for中定义变量,所以在编码时,不建议for中定义,会降低可移植性。
㈨ C语言 变量定义的位置
把floar改为float之后本人使用VS2005调试没有任何问题,先输入一个数,回车再输入一个数,最后正确输出结果。
你可以把scanf("%f%f",&r,&h);改一下scanf("%f,%f",&r,&h);在%f之间加个逗号,输入的时候在两个数之间加个逗号,也就是1,2.0这样,然后再试试。如果还是不行,就可能是你的编译器有问题,有可能是所谓的第一个输入语句不能在printf之后的毛病吧。
㈩ c语言的变量定义
C语言中变量遵循“先定义后使用”的原则:
1、定义变量的格式:数据类型 变量名;
首先要强调的一点是:变量的定义是一条语句,每条语句都是以分号结尾的。故定义完变量,后面不要漏掉“;”分号。
在变量定义中,“数据类型”表示想要存储什么类型的数据就定义什么类型的变量。
如想要存储整数就定义成 int 型;想要存储小数就定义成 float 型或 double 型;想要存储字符就定义成 char 型等等。
“变量名”就是你想给这个变量起个什么名字,通常都是用字母、数字与下划线组合而成。比如:
“int i;double price;double goods_price2”等等。
就表示定义了一个整型变量 i、小数型变量price、goods_price2;
2、变量定义完成后,接下来就是使用变量,为变量赋值。
将一个值放到一个变量中,这个动作叫“赋值”。通俗点讲,“给变量赋值”意思就是将一个值传给一个变量。
赋值的格式是:
变量名 = 要赋的值;
它的意思是将=右边的数字赋给左边的变量。比如:
i = 3;
这就表示将 3 赋给了变量 i,此时 i 就等于 3 了。
3、变量的定义和赋值,可以分成两步写,也可以将它们合成一步,而且事实上,在实际编程中用得最多的也是合二为一的写法。
形式如下:
数据类型 变量名 = 要赋的值;
比如:int i = 3;
就表示定义了一个变量 i,并把 3 赋给这个变量。它与
int i;
i =3;
是等价的。
在定义变量时也可以一次性定义多个变量,比如:
int i, j;
这就表示定义了变量 i 和 j。这里需要强调的是,当同时定义多个变量时,变量之间是用逗号隔开的,千万别写成分号。这是很多新手最容易犯的错误,即将逗号和分号记混了。
同样也可以在定义多个变量的同时给它们赋值:
int i = 3, j = 4;
中间还是用逗号隔开,最后别忘记输入分号。
最后需要注意的是,在较老的 C89/C90 标准(也称 ANSI C 标准)中,变量只能在程序的开头定义,或者说变量定义的前面不能有其他非声明或非定义的语句。
(10)c语言定义变量位置扩展阅读:
在主回答中,提到了变量定义时,变量名通常都是用字母、数字与下划线组合而成,但是实际上,变量名也不是随便组合的,变量定义需要遵循一定的规范,否则容易产生歧义,影响整体程序代码 的可读性。
所以在定义变量的时候,要注意以下命名规范:
(1)、变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。
(2)、变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。
比如: int CurrentVal;
这样的名字看起来比较清晰,远比一长串字符好得多。
(3)、变量名绝对不可以是C语言关键字,不能有空格。
(4)、变量名的长度应当符合“min-length && max-information”原则。
C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。