萌新的C语言成长日志7

C语言中用户标识符的作用域和存储类

在函数内部或复合语句内部定义的变量,称为局部变量。如函数的形参
在函数外部定义的变量,称为全局变量

C语言中,有两种存储类别:自动类和静态类。局部变量既可以说明成自动类,也可以说明成静态类;而全局变量只能是静态类。

有四个与两种存储类别有关的说明符:auto(自动)、register(寄存器)、static(静态)、extern(外部)可以放在类型名的左右。如:auto int i; int auto i;

auto和register是自动类变量,

全局变量只有静态一种类别。对于全局变量可以用extern和static两种说明符。作用域从变量定义的位置开始到整个源文件结束。

编译预处理和动态存储分配

在c语言中,凡是以“#”号开头的行,都称为编译预处理命令行。

动态分配系统有四个函数:malloc、calloc、free、realloc、使用这些函数时必须包含头文件stdlib.h

malloc函数的返回值类型为void*,函数的调用形式为:malloc(size);要求size的类型为unsigned int。
free函数的调用形式为:free§;
calloc函数返回值的类型为void*,函数的调用形式为:callooc(n, size);要求n和size的类型都为unsigned int。

结构体、共用体和用户定义类型

C语言允许使用typedef说明一种新类型名,一般形式为:
typtdef 类型名 标识符;
“类型名”必须是在此语句之前已有定义的类型标识符。“标识符”时一个用户定义标识符,用作新的类型名。typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。

结构图类型说明的一般形式未:
stuct 结构体标识名
{
类型名1 结构成员名表1;
类型名2 结构成员名表2;
‘’‘
类型名n 结构成员名表n;
};
注意:结构体说明要以分号结尾

可以用以下四种方式定义结构体的变量、数组和指针变量:
(1)紧跟在结构体类型说明之后进行定义
(2)在说明一个无名结构体类型的同时,直接进行定义
(3)先说明结构体类型,再单独进行变量定义
(4)使用typedef说明一个结构体类型名,再用新的类型名来定义变量。

若已定义了一个结构体变量和基类型为同一结构体类型的指针变量,并使该指针指向同类型的变量,则可以用以下三种形式来引用结构体变量中的成员。
(1)结构体变量名 . 成员名
(2)指针变量名->成员名
(3)(*指针变量名). 成员名

共用体类型的说明
union共用体标识名
{
类型名1 共用体成员名1;
类型名2 共用体成员名2;

类型名n 共用体成员名n;
};

共用体变量中的成员引用
(1)共用体变量名 . 成员名
(2)指针变量名->成员名
(3)(*指针变量名). 成员名

位运算

位运算符
“~”按位取反
“<<”左移
">>"右移
"&"按位与 全1为1,有0为0
"|"按位或 全0为0,有1为1
“^”按位异或 相同为0,不同为1

文件

定义文件类型指针变量一般形式为:
FILE *指针变量名;

打开文件
fopen(文件名,文件使用方式);

关闭文件
fclose(文件指针);

调用getc(fgetc)和putc(fputc)函数进行输入和输出
putc函数的调用形式为:
putc(ch,fp);
ch是待输出的某个字符,fp是文件指针
fputc函数的调用形式和功能与putc函数完全相同
getc函数的调用形式为:
ch = getc(pf);
pf是文件指针
fgetc函数的调用形式和功能与getc函数完全相同

feof函数可以判断二进制文件是否结束,也可以判断文本文件是否结束。
fscanf函数和scanf函数相似,只是输入的对象是磁盘上文本文件中的数据
fscanf(文件指针,格式控制字符串,输入项表);

fprintf函数和printf函数相似,只是输出的内容将按格式存放在磁盘的文本文件中。
fprintf(文件指针,格式控制字符串,输出项表);

fgets函数用来从文件中读入字符串
fgets(str,n,fp);
fp是文件指针str是存放字符串的起始地址,n是一个int型变量
fputs函数用来把字符串输出到文件中
fput(str,fp);

fread和fwrite函数分别用来读、写二进制文件
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
buffer是数据块的指针,size表示每个数据块的字节数。count用来指定每读、写一次,输入或输出字符快的个数

fseek函数用来移动文件位置指针到指定的位置上
fseek(pf,offset,origin);
pf是文件指针,offest是以字节为单位的位移量为长整型数,origin是起始点用以指定位移量是以哪个位置为基准,起始点既可以用标识符来表示,也可以用数字来表示。

ftell函数可以获得文件当前指针的位置
long t;
t = ftell(fp);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值