存储类型关键字有如下4个:
1 auto :声明自动变量。
此项为缺省值。auto int a;和int a;是完全相同的。所以在编程中一般看不到auto的使用。
2 extern:声明外部变量。
功能为扩展全局变量的作用域。
3 register:声明寄存器变量。
声明后,变量存储于CPU寄存器中。是最快的C语言变量。
但是需要注意的是,CPU寄存器有限的,所以并不是所有声明为register的变量都会存在寄存器中。使用register更像是一个申请,具体是否可以存在寄存器还要看系统情况。 该项尽量少用。
4 static :声明静态变量。
有静态局部变量和静态全局变量两种。用于局部变量时,将变量声明周期延长到整个程序运行。用于全局变量时,将全局变量作用域限定在本文件。
㈡ 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。静态变量只能够初始化一次。
㈢ 请通俗一点的讲讲指针是怎么存储的
指针就是指向一个地址啦。或许可以这样形容,宿舍知道吧?每一个宿舍就相当于一个地址,然后宿舍号就是指向这个地址的,你一说宿舍号就基本上知道说的是哪个宿舍了。这个指针也是一样。存储时,指针地址加一,就像安排宿舍时,这个宿舍安排满了,就下一个宿舍,宿舍号码加1,希望解释得够清楚吧,尽力了。
㈣ 指针的存储类型和数据类型的意义是什么
1.定义指针指定的数据类型是指指向数据的类型,并不是指针的类型,指针的数据类型是内存地址类型。
2.之所以定义指针时指明它指向数据的类型,是因为有些数据类型不能进行某些操作(运算),比如两个char相乘(或相除)没有任何意义。假如说定义指针时不需要指明它指向数据的类型,那么有指针p1和p2,那么(*p1)*(*p2)在不知道p1和p2指向的数据类型时就不能保证它对数据类型运算的限制了;
3,如果你只是想用指针保存一下数据的内存地址而不去对它进行运算你可以定义void类型的指针,它能指向任何数据类型,但是他不能进行任何运算。
另外你看下C++ Primer这本书,他对指针说明的很详细
㈤ C语言指针基本概念及其指针变量的定义是什么
指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址,可以通过指针就可以间接的访问到数据。对于计算机,访问内存的方式有两种,直接访问和间接访问。直接访问通过就是通过变量名称去访问。指针概念是构成C/C++的重要元素之一,是变量的一种类型,存放的是指定类型数据的地址,而同类型变量存放的是数据。
指针变量:就是一个变量,其值是可变的,与整形变量、浮点变量等等的命名规则完全相同。 “指针”是概念,“指针变量”是具体实现。指针类型说明,即定义变量为一个指针变量; 指针变量名; 变量值(指针)所指向的变量的数据类型。
(5)存储类指针扩展阅读:
与其他高级编程语言相比,C 语言可以更高效地对计算机硬件进行操作,而计算机硬件的操作指令,在很大程度上依赖于地址。指针提供了对地址操作的一种方法,因此,使用指针可使得 C 语言能够更高效地实现对计算机底层硬件的操作。另外,通过指针可以更便捷地操作数组。在一定意义上可以说,指针是 C 语言的精髓。