c语言储存
1、c语言中的存储类型有static 、auto、extern、及register,函数默认的存储类型应该是extern,意思是具有外部链接性的。一般来说,会通过extern来声明函数。
2、比如下面的代码,在1.c中定义一个函数,函数的声明写在1.h头文件中,在2.c中通过添加1.h的头文件,来声明及调用函数f()。
//1.c
void f() { ; }
//1.h
extern void f();
//2.c
#include "1.h"
int main() { f();}
2. c语言中,常量是存放在内存中吗
在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。
1.常量
常量是一个命名的数据项,在整个操作过程中其值保持不变。如PI值,即3.1415926535是数值型常量。 VFP定义了如下类型的常量:
数值型常量,如:20,16,100,1
字符型常量,用单引号或双引号括起来的字符串,如:"ABCD"
逻辑型常量,只有两种:.T.和.F.
日期型常量和日期时间型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.变�%
3. C语言中有哪些存储类型
c语言中的存储类型有auto, extern, register, static 这四种,存储类型说明了该变量要在进程的哪一个段中分配内存空间,可以为变量分配内存存储空间的有数据区、BBS区、栈区、堆区。
1. auto存储类型
auto只能用来标识局部变量的存储类型,对于局部变量,auto是默认的存储类型,不需要显示的指定。因此,auto标识的变量存储在栈区中。
2. extern存储类型
extern用来声明在当前文件中引用在当前项目中的其它文件中定义的全局变量。如果全局变量未被初始化,那么将被存在BBS区中,且在编译时,自动将其值赋值为0,如果已经被初始化,那么就被存在数据区中。全局变量,不管是否被初始化,其生命周期都是整个程序运行过程中,为了节省内存空间,在当前文件中使用extern来声明其它文件中定义的全局变量时,就不会再为其分配内存空间。
3. register存储类型
声明为register的变量在由内存调入到CPU寄存器后,则常驻在CPU的寄存器中,因此访问register变量将在很大程度上提高效率,因为省去了变量由内存调入到寄存器过程中的好几个指令周期。
4. static存储类型
被声明为静态类型的变量,无论是全局的还是局部的,都存储在数据区中,其生命周期为整个程序,如果是静态局部变量,其作用域为一对{}内,如果是静态全局变量,其作用域为当前文件。静态变量如果没有被初始化,则自动初始化为0。静态变量只能够初始化一次。
4. 怎样用C语言保存一个文件
在C语言中,文件有多种读写方式,可以一个字符一个字符地读取,也可以读取一整行,还可以读取若干个字节。文件的读写位置也非常灵活,可以从文件开头读取,也可以从中间位置读取。
在C语言中,二进制方式很简单,读文件时,会原封不动的读出文件的全部内容,写的时候,也是把内存缓冲区的内容原封不动的写到文件中。
而对文本文件的处理就不一样了。Windows 和 DOS 下的文本文件以CRLF(0X0D 0X0A)作为换行符,而C语言本身以LF(0X0A)作为换行符,所以以文本方式写入数据时,会将LF(0X0A)替换为CRLF(0X0D 0X0A),而读取数据时又会替换回来。
CR(0X0D)表示回车符,也就是 '
';CL(0X0A)表示换行符,也就是 '
'。在Linux和其他一些系统中,文本文件的换行符就是LF(0X0A),与C语言的换行符一样。所以也就没有了文本方式和二进制方式的区分,使不使用'b'标志都是一样的。
(4)c语言储存扩展阅读
C语言中文件的读取和写入
在C语言中写文件
//获取文件指针FILE *pFile = fopen("1.txt", //打开文件的名称
"w"); // 文件打开方式 如果原来有内容也会销毁//向文件写数据fwrite ("hello", //要输入的文字
//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
strlog("hello"), //单元个数 我们也可以直接写5
pFile //我们刚刚获得到的地址 );//fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写fflush(pFile); //数据刷新 数据立即更新
5. C语言中全局变量的储存类别是
C语言中全局变量的储存类别是静态存储区。
由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
(5)c语言储存扩展阅读:
使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。
使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。
当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。
6. C语言中变量的存储类型有哪几种,存储方式哪几种谢喽
在C语言中,对变量的存储类型说明有以下四种:
1、auto 自动变量
2、register 寄存器变量
3、extern 外部变量
4、static 静态变量
所谓存储类型是指变量占用内存空间的方式,也称为存储方式。
变量的存储方式可分为“静态存储”和“动态存储”两种。
1、静态存储变量通常是在变量定义时就在存储单元并一直保持不变,直至整个程序结束。
2、动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。
如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。从以上分析可知,静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。
(6)c语言储存扩展阅读:
变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。
一、从作用域看:
1、全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量的定义的源文件需要用extern关键字再次声明这个全局变量。
2、静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束一直存在,它和全局变量的区别在于全局变量对所有函数都是可见的,而静态局部变量只对定义自己的函数体始终可见。
3、局部变量也只有局部作用域,它是自动对象(auto),它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。
4、静态全局变量也具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它文件里,不能作用到其他文件里,即被static关键字修饰过的变量具有文件作用域。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。
二、从分配空间看:
全局变量,静态局部变量,静态全局变量都在静态存储区分配空间,而局部变量在栈里分配空间。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一个源程序的其他源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其他源文件中引起错误。
1、静态变量会放在程序的静态数据存储区(全局可见)中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。
2、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
参考资料来源:网络-变量-存储类型
7. C语言怎么保存
C语言是一门编程语言,按照语法编辑代码,保存为.c 如果有头文件,保存为.h 在能解析c语言代码的软件中,比如turboc2.0,里边可以编译,就会得到结果
8. C语言的基本类型在内存中怎么储存的
C语言的基本类型在内存中以二进制的形式储存的。
1、整型数据:所有整数(正负零)在内存中都是以补码的形式存在。对于一个正整数来说,它的补码就是它的原码本身。对于一个负整数来说,它的补码为原码取反再加1。
2、字符型数据:把字符的相对应的ASCII码放到存储码单元中,而这些ASCII代码值在计算机中同样以二进制补码的形式存放的。
3、实型数据:也叫浮点数,在计算机中也是以二进制的方式存储,关键在于如何将十进制的小数转化为二进制来表示。
扩展资料:
根据计算机的内部字长和编译器的版本,C语言的基本类型表示的数的长度范围是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。
如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。长整数158L和基本整常数158在数值上并无区别。
9. c语言如何用文件存储数据
具体操作步骤如下:
1、首先,创建一个新文件夹,在该文件夹中创建一个文档,如下图所示,然后进入下一步。
10. 编写好一个C语言程序,如何把数据一直保存下来
用数组保存。定义一个数组。
如:int a[6]={1,2,3,4,5,6};
然后输出
for(i=0;i<6;i++){
printf("%d",a[i]);}
代码如下:
#include<stdio.h>
int main(){
int a[6]={1,2,3,4,5,6};
int i;
for(i=0;i<=5;i++)
printf("%d ",a[i]);
}
(10)c语言储存扩展阅读
保存方法二如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char in;
fp = fopen("test.txt","w");
printf("请输入一个字符串(以!结束): ");
while((in=getchar()) != '!')
{
if(in <='z' && in >= 'a')
{
in -= 32;
}
fputc(in,fp);
}
fclose(fp);
return 0;
}