您现在的位置是: 网站首页 > 科技 科技大全

C语言中,变量为何要先定义后使用?(c语言为什么规定对所有用到的变量都要先定义后使用)

2022-08-07 08:45:47 科技 0人已围观

本文纲要目录:

1 : C语言中的变量必须先怎么?然后使用

首先变量需要先定义,后使用.
没有定义就使用变量会报错.
函数内定义的是局部变量
局部变量在定义时分配内存
在函数执行完时释放内存
在函数外定义的是全局变量
全局变量在全部文件执行时才释放内存
当然没必要一次性把所有要

2 : 如何理解变量在C语言中的现定义后使用这一规则

这个表示的是位域,表示变量所占得位数位结构是c51语言中的一种特殊结构,可以用于访问一个字节或字的多个位。位结构一般形式如下。
struct
位结构名
{
数据类型
变量名:
整形常数;
数据类型
变量名:
整形常数;
}位结构变量;
其中,struct为关键字,位结构数据类型必须是整型int(unsigned或signed);整形常熟必须是非负的整数,范围是0~15,用于表示有多少位,即表示二进制位的个数,变量名是可选项,可以省略。位结构的定义,实例如下。
struct
{
unsigned
lbit
:
8;
//lbit
占用低字节0~7共八位。
unsigned
hbit0
:
4;
//hbit0
占用高字节0~3共4位。
unsigned
hbit1
:
3;
//hbit1
占用高字节4~6共3位。
unsigned
hbit2
:
1;
//hbit2
占用高字节第7位。
}bit;
位结构成员的访问与结构成员的访问相同,例如访问上列位结构中的lbit成员可写成如下形式
bit.lbit
在使用位结构时,应注意以下几点。
1、位结构中的成员必须是int,但可以定义为unsigned或者signed。
2、当位结构成员长度为1时,c51语言将其认为是unsigned类型。
3、位结构总长度(位数)是各个位成员定义的位数之和,可以超过两个字节。
4、位结构中的成员不能使用数组和指针,但位结构变量可以是数组和指针。如果是指针,其成员访问方式同结构指针。
5、位结构可以成为嵌套式结构的成员,与其他结构成员一起使用,示例如下。
struct
student
{
char
*name;
int
num;
int
age;
char
*sex;
float
score;
unsigned
reister:1;
unsigned
pay:1;
};

3 : C语言为什么要规定对所有用到的变量要“先定义,后使用”,这样做有什么好处?

变量要“先定义C语言中,变量为何要先定义后使用?,后使用”C语言中,变量为何要先定义后使用?,就是为C语言中,变量为何要先定义后使用?了在内存C语言中,变量为何要先定义后使用?的相应地址中开辟一个这个变量专用的空间,也是为了计算机在使用这个变量的时候可以方便地找到这个变量在内存中所在的位置,以便于下一步的操作。
通俗点讲就是:给每个变量一个存储的位置,方便操作。

4 : C语言为什么规定对所有用到的变量要“先定义,后使用

规定“所有用到的变量要先定义后使用”,编译器处理起来比较方便,不会有歧义。
因为 C++ 里面,相同名字的变量在【不同的作用域】里面,是可以重复声明的。
注:每一对"{}"就是一个作用域。

比如下面的程序是可以编译通过的:
#include
using namespace std;
int main(int argc, char *argv[])
// 作用域 1 开始
{
int a = 1;
// 作用域 2 开始
{
cout << a << endl; // 输出语句 1
int a = 2;
// 作用域 3 开始
{
cout << a << endl;// 输出语句 2
int a = 3;
// 作用域 4 开始
{
cout << a << endl;// 输出语句 3
int a = 4;
cout << a << endl;// 输出语句 4
}
}
}
return 0;
}
输出结果为:
1
2
3
4
--------------------------------------------------------------------------------
如果【没有】规定“所有用到的变量要先定义后使用”,上面的程序会怎么样呢?
那么上面这个程序就乱套了。因为可以先使用,再定义,
输出语句1~4 就不知道自己该用哪个变量 a 了(这里有4个不同的 a)。
因为不需要“先定义,后使用”,输出语句1~4可以使用定义在任何地方的哪个变量 a 。
这样,编译器就无法确定,也就无法编译了。
--------------------------------------------------------------------------------
如果规定“所有用到的变量要先定义后使用”,上面的程序会怎么样呢?
那么上面这个程序可以正常运行:
1)在输出语句1的位置为止,只有【作用域 1 】定义了一个 a : int a=1 ,因此输出 1 。
2)在输出语句2的位置为止,【作用域 1 】和【作用域 2】分别定义了一个 a :
int a=1 ;
int a=2 ;
根据就近原则,使用最内层作用域的 a ,【作用域 2】里面的 a ,输出 2 ;
3)在输出语句3的位置为止,【作用域 1 】【作用域 2】和【作用域 3】分别定义了一个 a :
int a=1 ;
int a=2 ;
int a=3 ;
根据就近原则,使用最内层作用域的 a ,【作用域 3】里面的 a ,输出 3 ;
同理可以分析输出语句4。
这就是为什么规定“所有用到的变量要先定义后使用”的原因之一吧。

5 : C语言为何规定对所有的变量要“先定义,后使用”呢?

主要目的是为了让编译器首先知道该定义变量的类型,可以事先为该变量安排存储空间,不致于最后编译失败,也有利于内存的利用和程序的效率。

6 : C语言为什么要规定对所有用到的变量要“先定义,后使

规定“所有用到C语言中,变量为何要先定义后使用?的变量要先定义后使用”C语言中,变量为何要先定义后使用?,编译器处理起来比较方便C语言中,变量为何要先定义后使用?,不会有歧义。
因为 C++ 里面,相同名字的变量在【不同的作用域】里面,是可以重复声明的。
注:每一对"{}"就是一个作用域。

比如下面的程序是可以编译通过的:
#include
using namespace std;
int main(int argc, char *argv[])
// 作用域 1 开始
{
int a = 1;
// 作用域 2 开始
{
cout << a << endl; // 输出语句 1
int a = 2;
// 作用域 3 开始
{
cout << a << endl;// 输出语句 2
int a = 3;
// 作用域 4 开始
{
cout << a << endl;// 输出语句 3
int a = 4;
cout << a << endl;// 输出语句 4
}
}
}
return 0;
}
输出结果为:
1
2
3
4
--------------------------------------------------------------------------------
如果【没有】规定“所有用到的变量要先定义后使用”,上面的程序会怎么样呢?
那么上面这个程序就乱套C语言中,变量为何要先定义后使用?了。因为可以先使用,再定义,
输出语句1~4 就不知道自己该用哪个变量 a 了(这里有4个不同的 a)。
因为不需要“先定义,后使用”,输出语句1~4可以使用定义在任何地方的哪个变量 a 。
这样,编译器就无法确定,也就无法编译了。
--------------------------------------------------------------------------------
如果规定“所有用到的变量要先定义后使用”,上面的程序会怎么样呢?
那么上面这个程序可以正常运行:
1)在输出语句1的位置为止,只有【作用域 1 】定义了一个 a : int a=1 ,因此输出 1 。
2)在输出语句2的位置为止,【作用域 1 】和【作用域 2】分别定义了一个 a :
int a=1 ;
int a=2 ;
根据就近原则,使用最内层作用域的 a ,【作用域 2】里面的 a ,输出 2 C语言中,变量为何要先定义后使用?
3)在输出语句3的位置为止,【作用域 1 】【作用域 2】和【作用域 3】分别定义了一个 a :
int a=1 ;
int a=2 ;
int a=3 ;
根据就近原则,使用最内层作用域的 a ,【作用域 3】里面的 a ,输出 3 ;
同理可以分析输出语句4。
这就是为什么规定“所有用到的变量要先定义后使用”的原因之一吧。

7 : C语言为什么规定要“先定义,后使用”?

因为没有定义,就不知道是什么类型的数据啊,就像先告诉你姚明是打篮球的,齐达内是踢足球的,然后你在下面的程序里面才能使用,实现他们的功能啊。要不然让姚明去踢足球就不太合适了,呵呵!!!

8 : 关于c语言中规定变量必须先定义后使用的问题

关于是否要一次性定义所有变量C语言中,变量为何要先定义后使用?
在C语言编程中,变量必须要先定义后使用,没有定义C语言中,变量为何要先定义后使用?的变量或者中途定义的话可能会导致程序出错,在编程中其实并不是一定要一次性定义所有变量的,因为在编程开始时,并不是每个人都能够一次性把需要用到的变量全部想出来,一般编程思维是自己在编程过程中想到什么变量、需要用到什么类型的变量,再逐一定义后使用。
C语言的书上是为了强调注意程序的可读性,也就是让其他看程序代码的人一次能够看得懂这个变量是什么,定义的名称是什么,怎么赋值的等等,所以会写成必须一次定义所有变量,其实在编写完毕的程序中是需要写成一次性定义了的所有变量的格式,并不是要我们在编程时一次性定义所有变量的操作步骤。只要自己需要用到的变量,可以在定义变量那几行代码后面继续添加就行,不一定要刻意先想出所有变量名称、变量类型。
扩展资料C语言中,变量为何要先定义后使用?
一下是C语言中基本的变量类型C语言中,变量为何要先定义后使用?
在C语言中,常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
参考资料C语言中,变量为何要先定义后使用?:C语言-百度百科