A. 在c语言中什么是定义变量
不是很理解您问的问题,你是有否了解一点C基础。
我只能猜测一下回答
例:定义变量
int
Num;
//定义了一个变量。int
整型,是标准C++中的数据类型。Num
是变量名。
int
Num1,
Num2,
Num3;
//
定义了3个整型变量,num1,num2,num3。(在同一行声明同一类型变量,变量名之间用逗号间隔,语句末尾仍然是以;封号结束)
int
Num
=
5;
//定义一个
int型变量Num并且将值初始化为5;
例:输入输出操作
如果是C++,那么首先包含头文件
#include
<iostream>
using
namespace
std;
//然后在main
函数里面写上:
int
Num1,
Num2//
定义变量
cin
>>
Num1;
//输入操作,对变量Num1进行写入。
Num2
=
Num1;
//将变量Num1的值赋给Num2。
cout
<<
"Num2=
"
<<
Num2
<<
endl;
//
输出变量num2的值。(endl是回车换行。)
B. 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 标准)中,变量只能在程序的开头定义,或者说变量定义的前面不能有其他非声明或非定义的语句。
(2)c语言定义变了扩展阅读:
在主回答中,提到了变量定义时,变量名通常都是用字母、数字与下划线组合而成,但是实际上,变量名也不是随便组合的,变量定义需要遵循一定的规范,否则容易产生歧义,影响整体程序代码 的可读性。
所以在定义变量的时候,要注意以下命名规范:
(1)、变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。
(2)、变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。
比如: int CurrentVal;
这样的名字看起来比较清晰,远比一长串字符好得多。
(3)、变量名绝对不可以是C语言关键字,不能有空格。
(4)、变量名的长度应当符合“min-length && max-information”原则。
C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。
C. 为什么在C语言中任何变量定义后,其数据类型不能改变,只能改变其值
在C语言中,任何类型的变量在定义后,当给变量赋值时,给他们在内存中分配的空间就是一定的了,不同的数据类型在内存中占的大小不同,这时我们就只能根据数据类型给变量赋值,不能超出类型的最大限制…
因此变量的类型不能随便改动,否则会发生内存溢出,或者内存错乱的现象…改变值的大小时也要注意,不能超出了类型的取值范围……
D. C语言定义变量的奇怪现象
下面你的程序出现了重复定义的错误,即一个程序中不能同时定义同名的两个变量,你在程序中int a; 后变量a的作用域是全局的,定义第二个int a;后作用域也是全局的,这是绝对不允许的。
上面的代码中,你在for循环中定义了int b; 变量b的作用域就在for循环体内,循环一次后局部变量b就会消失,当执行第二次for循环时,会重新定义局部变量b,不会出现重复定义。因此编译时不会出错!!!
E. C语言的定义变量问题
auto
(1)auto关键字在C语言中只有一个作用,那就是修饰局部变量。
(2)auto修饰局部变量,表示这个局部变量是自动局部变量,自动局部变量分配在栈上。(既然在栈上,说明它如果不初始化那么值就是随机的······)
(3)平时定义局部变量时就是定义的auto的,只是省略了auto关键字而已。可见,auto的局部变量其实就是默认定义的普通的局部变量。
F. 关于C语言的定义方式
位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。 一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为: struct 位域结构名 { 位域列表 }; 其中位域列表的形式为: 类型说明符 位域名:位域长度 例如: struct bs { int a:8; int b:2; int c:6; }; 位域变量的说明与结构变量说明的方式相同。 可采用先定义后说明,同时定义说明或者直接说明这三种方式。例如: struct bs { int a:8; int b:2; int c:6; }data; 说明data为bs变量,共占两个字节。其中位域a占8位,位域b占2位,位域c占6位。对于位域的定义尚有以下几点说明: 1. 一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始。例如: struct bs { unsigned a:4 unsigned :0 /*空域*/ unsigned b:4 /*从下一单元开始存放*/ unsigned c:4 } 在这个位域定义中,a占第一字节的4位,后4位填0表示不使用,b从第二字节开始,占用4位,c占用4位。 2. 位域的长度不能大于一个int的长度,也就是说不能超过32位。 3. 位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的。例如: struct k { int a:1 int :2 /*该2位不能使用*/ int b:3 int c:2 }; 从以上分析可以看出,位域在本质上就是一种结构类型, 不过其成员是按二进位分配的。 二、位域的使用 位域的使用和结构成员的使用相同,其一般形式为: 位域变量名·位域名 位域允许用各种格式输出。 main(){ struct bs { unsigned a:1; unsigned b:3; unsigned c:4; } bit,*pbit; bit.a=1; bit.b=7; bit.c=15; printf("%d,%d,%d\n",bit.a,bit.b,bit.c); pbit=&bit; pbit->a=0; pbit->b&=3; pbit->c|=1; printf("%d,%d,%d\n",pbit->a,pbit->b,pbit->c); } 上例程序中定义了位域结构bs,三个位域为a,b,c。说明了bs类型的变量bit和指向bs类型的指针变量pbit。这表示位域也是可以使用指针的。 程序的9、10、11三行分别给三个位域赋值。( 应注意赋值不能超过该位域的允许范围)程序第12行以整型量格式输出三个域的内容。第13行把位域变量bit的地址送给指针变量pbit。第14行用指针 方式给位域a重新赋值,赋为0。第15行使用了复合的位运算符"&=", 该行相当于: pbit->b=pbit->b&3位域b中原有值为7,与3作按位与运算的结果为3(111&011=011,十进制值为 3)。同样,程序第16行中使用了复合位运算"|=", 相当于: pbit->c=pbit->c|1其结果为15。程序第17行用指针方式输出了这三个域的值。 为了节省空间,可以把几个数据压缩到少数的几个类型空间上,比如需要表示二个3位二进制的数,一个2位二进制的数,则可以用一个8位的字符表示之。 struct { char a : 3; char b : 3; char c : 2; } ; 这个结构体所占空间为一个字节,8位。节省了空间。
满意请采纳
G. C语言变量定义
C语言中变量遵循“先定义后使用”的原则:
1、定义变量的格式:数据类型 变量名;
首先要强调的一点是:变量的定义是一条语句,每条语句都是以分号结尾的。故定义完变量,后面不要漏掉“;”分号。
在变量定义中,“数据类型”表示想要存储什么类型的数据就定义什么类型的变量。
如想要存储整数就定义成 int 型;想要存储小数就定义成 float 型或 double 型;想要存储字符就定义成 char 型等等。
“变量名”就是你想给这个变量起个什么名字,通常都是用字母、数字与下划线组合而成。比如:
“int i;double price;double goods_price2”等等。
就表示定义了一个整型变量 i、小数型变量price、goods_price2;
2、变量定义完成后,接下来就是使用变量,为变量赋值。
将一个值放到一个变量中,这个动作叫“赋值”。通俗点讲,“给变量赋值”意思就是将一个值传给一个变量。
赋值的格式是:
变量名 = 要赋的值;
H. C语言中定义一个变量a,其地址还会不会变了像a=b,意思是值变了,地址没变那怎么变化a的地址
变量a的地址是不能变的,当程序被加载时,操作系统会为它分配好地址,且一经分配,不能再改变!当然,每一次程序运行时,操作系统为a分配的地址可以不同。
有以下几点常常另初学者感到困惑,现举例加以解释:
int b,c,*a;
a=&b;
语句a=&b;并没有改变a的地址,它只是改变了a这个箱子中装的东西。如果你在语句a=&b;的前后用printf("%d",(int)&a);输出a的地址,就会发现它们是一样的。如果后面再来个a=&c;则printf("%d",(int)&a);的输出也一样!
关键是要区分以下几点:
a,表示a的值,即它装的东西,具体到这个例子,a装的是另一个int型变量的地址。如果a不是const类型的,则它装的东西可以改变。比如,这里先装的是b的地址(指针变量是用来装地址的),后改成了c的。
&a,当然就表示a自己的地址了,你可以将a想象成一个箱子,它的地址就是这个箱子的编号。
*a,因为a是一个指针,*a就表示a指向的变量的值,即b或c的值(具体要看a装的是谁的地址,即a指向谁),也即*a=b或*a=c。
现假设a装的是b的地址,那有:
a=&b,即a的值等于b的地址。
*a=b=*(&b),这里*的作用是取出某个地址中的值。因为a的值是b的地址,因此*a取出的是b的值,同理(&b)是b的地址,*(&b)取出的也是b的值!
分析一下a,b,c的内存模型(即它们在内存中是怎样表示的、关系又是怎样的),理解这些就不难了,你边学边体会吧!
I. C语言变量定义
类型说明符
变量名称
赋值表达式。这是基本的。
比如:int
a=1+2;
char
b='b';定义了一个整数型变量a
其值为1+2就是3,定义了一个字符型变量b,b的值为字符‘b’。类型说明符变量名称还可以加修饰说明,比如前面加上const表示这是一个不能修改值得常量等等。
J. C语言定义变量问题
struct person zhangsan;
struct person *lisi;
zhangsan.age=10;
lisi->age=10; ---- 这个样子使用会出异常的。
struct
person
zhangsan,是定义一个结构体变量,系统会给他分配内存来存放。
struct
person
*lisi,是定义一个结构体指针,系统只会给指针分配空间,指针指向的内存是一个随机值,是不能访问的,想lisi->age的话,就必须先分配内存才可以。