c语言存储类型知识点记录

                                                                                              知识点概要

sprintf() 格式化输出函数(图形)
功能: 函数sprintf()用来作格式化的输出。
用法: 此函数调用方式为intsprintf(char *string,char *format,arg_list);
说 明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。通常在绘图方式下输出数字时可调用sprintf()函 数将所要输出的格式送到第一个参数,然后显示输出。

函数名: sprintf
功  能: 送格式化输出到字符串中
用  法: intsprintf(char *string, char *farmat [,argument,...]);
程序例:

#include
#include

int main(void)
{
   char buffer[80];

   sprintf(buffer, "An approximation ofPi is %f\n", M_PI);
   puts(buffer);
   return 0;
}

注意隐式声明:C语言中有几种声明类型名可以省略,即函数不显示声明返回值类型,则系统默认为整型。如果编译器得到从充足的信息推断出某条语句实际上是一个声明时,如果它缺少类型名,编译器同样假定它为整型。

typedef相关用法概要:typedef机制允许你为各种数据类型定义新名字。

eg:typedef char *ptr_to_char;该声明将标识符ptr_to_char作为指向字符的指针类型的新名字。你可以像使用任何预定义名字一样在下面的声明中使用这个新名字。例如:ptr_to_char   a;对应为声明a是一个指向字符的指针。

const变量只能用于允许使用变量的地方。

作用域规则总结:1.其他函数无法通过这些变量的名字访问它们,因为这些变量在他们的作用域外便不再有效。

                             2.只要分属不同作用域,可以给不同的变量起同一个名字。

K&R C:

函数的形参作用域开始于形参的声明处,位于函数体之外。在函数体内部声明了名字与形参相同的局部变量,它们就将隐藏形参,即形参将无法被函数的任何部分访问

ANSI C形参作用域设定为函数最外层的作用域(即整个函数体)

链接属性(3种):external(外部)、internal(内部)、none(无)实现了不同源文件之间的函数调用。

注意:当extern关键字用于源文件中一个标识符的第一次声明时,它指定该标识符具有external链接属性。但是,如果它用于该标识符的第二次或以后的声明时,它并不会更改由第一次声明指定的链接属性。

存储类型:

三个存储变量的地方:普通内存、运行时堆栈、硬件寄存器 

凡是在任何代码块之外声明的变量存储于静态内存中,在代码内部声明的变量是自动的,存储于堆栈中。修改变量存储类型并不会修改变量作用域。变量声明的先后并无效率上的差别。

这是四个存储类型的详解:(参考相关博客)

一、auto存储类型

用auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常存在于函数体内或函数中的复合语句里。
在函数体内,auto声明的变量是局部变量。存放到栈空间中,当函数执行完毕,栈空间就会被系统自动释放。

二、register存储类型

register称为寄存器型,使用register关键词说明的变量,主要目的是想将所说明的变量放入CPU的寄存器存储空间中,这样可以加快程序的运行速度。
但CPU的寄存器数量也是有限的,当没有申请到寄存器来存储此变量时,该变量则自动转为auto类型!!!(声明为寄存器存储类型的变量,不能够取地址!)

三、static存储类型

在函数体内说明的static 存储类型的变量也是一种局部变量,与auto最大不同点是:static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行,静态变量就不会随着说明它的程序段的结束而消失,当下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用结束的数值。
当static修饰一个全局变量时,它的作用则是限定了此全局变量不能被外部文件所引用,限定了该全局变量的作用域。
当static修饰一个局部函数时,同样的作用也是限定了本代码段的作用域仅限于本文件,不得被外部文件引用!!!

四、extern存储类型

extern声明的存储类型被称为外部参照引用型,使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。

 

 移位操作符:

左移位:1.逻辑移位 2.算术移位 操作符为<<。左边移入的位由原先该值的符号位决定,符号位为1则移入的位均为1,符号位为0则移入的位均为0.

右移位:操作符为>> 

区别:算术左移和逻辑左移是相同的,但在右移时不同而且只有当操作数是负值时才不一样。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值