永发信息网

C语言中怎样申明变量?

答案:4  悬赏:20  手机版
解决时间 2021-03-15 22:27
C语言中怎样申明变量?
最佳答案
最佳答案 - 由投票者2个月前选出
int (*p)()只是output函数的一个参数,这个问题和你的代码:出现的问题没有关系
main()
{
int b=10;
printf("%d
",b);
int a=5;
printf("%d
",a);
}
在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语言int类型用两个字节16位存贮 只能存储-32768~32767 存储9位数可用long int 或浮点来存贮float、double 一、整型数说明 加上不同的修饰符, 整型数有以下几种类型; signed short int 有符号短整型数说明。简写为short或int, 字长为2 字节共16位二进制数, 数的范围是-32768~32767。 signed long int 有符号长整型数说明。简写为long, 字长为4字节共 32位二进制数, 数的范围是-2147483648~2147483647。 unsigned short int 无符号短整型数说明。简写为unsigned int, 字长 为2字节共16位二进制数, 数的范围是0~65535。 unsigned long int 无符号长整型数说明。简写为unsigned long, 字长 为4字节共32位二进制数, 数的范围是0~4294967295。 一、浮点数说明 turbo c中有以下两种类型的浮点数: float 单浮点数。字长为4 个字节共32位二进制数,数的范围是3.4x10-38e~3.4x10+38e。 double 双浮点数。字长为 8个字节共 64位二进制数,数的范围是1.7x10-308e~1.7x10+308e。 参考资料: http://www.bianceng.cn/programming/c/jc/200705/457.htm
比如 在tmp.C文件中定义 int tmp; 在tmp.H文件中声明 extern int tmp; 在所有用到tmp的C文件中include "tmp.H" 就可以了 这种方法所有的编译器都通用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黄连山我想知道这个在什么地方
韩国旅游是否可以有私人导游陪同
内江友好城市有哪些
最高法院:二审判决书什么时候发生法律效力
k417次列车 武汉---北京西 今晨几点到?
杨门虎将里苏有朋被他爹打的是哪一集 ?
尤家坟地址在什么地方,想过去办事
我的车停在路边,出了交通事故,一辆摩托车撞
苍翼默示录神观之梦怎样对战设置2p
家庭作业为什么成了“家长作业”
既然已经选择放弃了,既然说过不爱了,那又何
我家有7个空调7个热水器电磁炉一个微波炉一个
银行卡取款每笔怎么算是插卡一次算一笔吗?我
大连航运职业技术学院女生就业怎么样
新款宝马x1有什么配置
推荐资讯
“野霁云犹积”出自哪一首诗词
镇平县便民服务中心地址在什么地方,想过去办
胰岛素降血糖可以一下子降到正常吗
陇南橄恩庄园橄榄油怎么样?
如皋红绿灯拍违章有哪些
厂房西西面接房子有没有风水方面的说法?
请问 有梵蒂冈这种品牌的服装吗?
1951年农历11月21日是什么星座
福特致胜油箱怎么加注燃油精?
1985年9月13日当天有发生什么事?
李克勤《夜半小夜曲》歌词
那一世,转山转水转佛塔啊,不为修来生,只为
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?