c语言变量怎么用
❶ c语言中变量是干什么用的
如果你是初学,变量你可以看成一个容器,放数据的。当然容器是在内存里的。不同的容器放不同类型的变量。
计算机怎么知道你的数据在哪里,有多长?就是通过变量沟通的,不同的类型长度不一样,这些长度都是预定义好的,你声明什么类型的变量,计算机就知道你的数据有多长了,至于你的数据在哪里,就是变量名了。
随着你学习的深入,你会越来越清楚的,知道的答案也越精确^_^
❷ C语言中怎样申明变量
任何一种编程语言都离不开变量,特别是数据处理型程序,变量的使用非常频繁,没有变量参与程序甚至无法编制,即使编制运行后的意义也不大。变量之所以重要,是因为变量是编程语言中数据的符号标识和载体。
C语言是一种应用广泛的善于实现控制的语言,变量在C语言中的应用更是灵活多变。那么变量究竟是什么呢?变量是内存或寄存器中用一个标识符命名的存储单元,可以用来存储一个特定类型的数据,并且数据的值在程序运行过程中可以进行修改。可见,变量首先是一个标识符或者名称,就像一个客房的编号一样,有了这个编号我们在交流中就可方便言表,否则,我们只可意会,那多不方便。为了方便,我们在给变量命名时,最好能符合大多数人的习惯,基本可以望名知义,便于交流和维护;其次,变量是唯一确定的对应内存若干存储单元或者某个寄存器。这些是编译器来保证的,用户一般不用费心。
程序员一旦定义了变量,那么,变量就至少可为我们提供两个信息:一是变量的地址,即就是,操作系统为变量在内存中分配的若干内存的首地址;二是变量的值,也就是,变量在内存中所分配的那些内存单元中所存放的数据。
由于程序的多样需要,我们对变量也有各种各样的要求,比如:变量的生命期,变量的初始状态,变量的有效区域,变量的开辟地和变量的开辟区域的大小等等;为了满足这些要求,C语言的发明者就设置了以下变量:
1、 不同数据类型的变量;如:char cHar, int iTimes, flaot faverage;
2、 全局变量或者叫全程变量;
3、 局部变量;
4、 静态变量: 静态全局变量和静态局部变量;关键词:static
5、 寄存器变量;关键词:register;
6、 外部变量: 关键词:extern;
C语言中,变量在内存中开辟地的大小由数据类型决定的,由于PC机中规定一个地址单元存一个字节,不同的数据类型的变量,为其分配的地址单元数是不一样的。C语言中除几种基本的数据类型外用户还可以自己定义所需要的数据类型:
1、 bool型 sizeof(bool): 1
2、 char型: sizeof(char): 1
3、 short型: sizeof(short): 2
4、 int型: sizeof(int): 4
5、 long型: sizeof(long): 4
6、 float型: sizeof(float): 4
7、 double型: sizeof(double): 8
8、 自定义型:如:
typedef struct tagMyData
{
char cHar;
int iTimes;
float faverage;
}MyDatap;
sizeof(MyDatap): 12
char szBuf[]="HELLO C&C++!";
sizeof(szBuf): 13
局部变量和全局变量是相对而言的;如下:局部变量 int itmp;
int Get_Max( const int& x, const int& y, const int& z )
{
int itmp;
if(x > y) itmp = x;
else itmp = y;
if( itmp > z ) return itmp;
else return z;
}
在函数内部说明的变量为局部变量,只有在函数执行时,局部变量才存在,当函数执行完退出后,局部变量随之消失。也就是,当函数执行完退出后,原先在函数内定义的变量现在不能用,这通常由编译器保证,它会阻止编译通过。也就是说,原来为那个局部变量分配的内存,现在已经不属于它,它再无权访问了。如要再使用这些内存单元就必须从新定义变量来申请,只有分配给的变量才可访问它。否则,就会出错,如数组越界访问。
与局部变量不同,全局变量在整个程序都是可见的,可在整个程序运行过程中,对于任何一个程序都是可用的。全局变量的说明的位置在所有函数之外,但可被任何一个函数使用,读取或者写入。如下:全局变量 int iCount, bool bForward;
int iCount; //全局变量;
bool bForward; //全局变量;
void add( void );
void dec( void );
void man(void )
{
while( iCount < 1000 && iCount > -1000)
{
add( );
dec( );
printf("COUNT:%d;\n", iCount)
}
}
void add( void )
{
if( bForward ) iCount++;
}
void dec( void )
{
if(!bForward ) iCount--;
}
可见,全局变量非常方便不同函数间数据共享,同样,任何函数在在使用数据时,都不敢保证数据是否已被修改。如果程序员无法保证这个,就尽量避免使用全局变量。
静态变量是分配在存储器中C程序所占据的数据段内, C程序运行的整个过程中一直保留,不会被别的变量占用。静态变量可以定义成全局变量或局部变量,当定义为全局变量时,在它定义的程序的整个运行期间均存在并且保持原来的存储单元位置不会改变。那么既然有了全局变量为什么还要定义全局静态变量呢?看下边的示例:
❸ C语言中的变量必须先怎么然后使用
首先变量需要先定义,后使用.
没有定义就使用变量会报错.
函数内定义的是局部变量
局部变量在定义时分配内存
在函数执行完时释放内存
在函数外定义的是全局变量
全局变量在全部文件执行时才释放内存
当然没必要一次性把所有要
❹ c语言中间变量有啥用
中间变量可以说是一种媒介或者是桥梁 , 比如交换两个数的数值 , 或者是两个数组 ,
比如 ,a=2;b=3;怎样交换两个数值且用到中间变量 ,可以这样 ,int c; c=a;
a = b;
b = c;
就实现了交换 ;如果是数组 , 同理 ;
❺ C语言怎么给一个变量赋值中文
在 C 语言编程中,关于给某个具体变量赋值中文的问题,根据我的编程经验,你可以这样编程不容易出错,见如下程序代码:
#include <string.h>
#include <stdio.h>
#define MAX 50 /* 定义一个宏 MAX,该宏定义可以根据需要自行进行修改 */
void main( )
{
unsigned char my_hanzi[MAX] ; /* 在这里必须要注意:由于所需要处理的信息是汉字信息,但是汉字信息的 ASCII 码的最高位为 1,故在这里必须要将变量定义成无符号字符型数组:unsigned char my_hanzi[MAX] */
gets(my_hanzi) ; /* 输入一个汉字字符串,但是最大长度不能够超过 MAX 个字符,否则会出错 */
puts(my_hanzi) ; /* 输出刚刚在上面从键盘上输入的汉字字符串 */
strcpy(my_hanzi, "这是一个汉字字符串的应用" ) ; /* 将一个新的汉字字符串复制给变量 my_hanzi */
puts(my_hanzi) ; /* 再输出刚刚复制的新的汉字字符串 */
}
至于说其它的对汉字信息的各种处理,均可以参考该程序。
❻ c语言中如何向运行的程序输入变量
???运行的程序??你的意思是scanf么?
比如:
int a=0;
printf("请输入变量a的值:");
scanf("%d",&a);
printf("a = %d",a);
❼ C语言结构变量怎么用啊
第22行改成 price[i].p=p;
第31行改成 if(price[t].p==max)
第33行改成 if(price[t].p==min)
第29行改成 for(t=1;t<=n;t++)
❽ c语言中静态变量是怎么用的
#include"stdio.h"
void
main()
{
int
f(int);
int
a=2,i;
for(i=0;i<3;i++)
printf("%d
",f(a));
}
int
f(int
a)
{
auto
int
b=0;
//aubo为自动变量的标志,则b为自动变量
static
int
c=3;//static
为静态局部变量的标志,则c为静态局部变量
b=b+1;
//b为自动变量,则b一直等于1
c=c+1;
//c为静态局部变量,则c随着for循环分别为4,5,6
return(a+b+c);
}
所以运行的结果为:7,8,9
注:静态局部变量(静态变量)是在编译时赋初值的,即值赋初值一次,在程序运行时它已有初值,以后每次调用函数式不在重复赋初值而只在保留商城函数调用结束时的值。
❾ c语言,变量的定义和使用
变量的声明有两种情况:
1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。
前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing declaration)”,从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义,例如:int a 它既是声明,同时又是定义。然而对于 extern a 来讲它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。很明显我们在这里指的声明是范围比较窄的,即狭义上的声明,也就是说非定义性质的声明,例如:在主函数中:
int main() {
extern int A;
//这是个声明而不是定义,声明A是一个已经定义了的外部变量
//注意:声明外部变量时可以把变量类型去掉如:extern A;
dosth(); //执行函数
}
int A; //是定义,定义了A为整型的外部变量
外部变量的“定义”与外部变量的“声明”是不相同的,外部变量的定义只能有一次,它的位置是在所有函数之外,而同一个文件中的外部变量声明可以是多次的,它可以在函数之内(哪个函数要用就在那个函数中声明)也可以在函数之外(在外部变量的定义点之前)。系统会根据外部变量的定义(而不是根据外部变量的声明)分配存储空间的。对于外部变量来讲,初始化只能是在“定义”中进行,而不是在“声明”中。所谓的“声明”,其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是为了“提前”引用该变量而作的“声明”而已。extern 只作声明,不作任何定义。
(我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间。)
用static来声明一个变量的作用有二:
(1)对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在。
(2)外部变量用static来声明,则该变量的作用只限于本文件模块。
❿ c语言全局变量怎么用
只要把定义变量的语句放在函数的外面。这样定义的变量就是全局变量。全局变量有默认的初始值为0, 全局变量对在它起作用范围内的每一个函数都可以生效。