C语言概述(1)

一.数值之间的进制转换

三位二进制位合成一个八进制位,四位二进制位合成一位十六进制位。进制位的转换可以使用权重法
在这里插入图片描述

二.数据类型的分类及其大小

char (mini_int)1, int 4 , long int 4,double 8,float 4,long double 16,long long 8,bool 1

三.变量的分类及其作用范围

局部变量:在函数内部定义的变量。
全局变量:在函数外部定义的变量。
当全局变量和局部变量同时定义时,标识符离谁近就打印谁的值(向上看),若要打印全局变量的值,需加作用域标识符。

四. C语言的常量分类

(1)字面常量
(2)用#define定义的宏常量
(3)用const关键字修饰的常量,成为常变量
(4)枚举常量(枚举常量不能进行自加和自减,只能取枚举范围内的值,后边加\0(空字符))
(5)字符常量和字符串常量(单引号是字符的定界符;双引号是字符串的定界符
在这里插入图片描述

(6)char类型存放的是字符的Ascall码值
(7)转义字符以反斜线“\”开头,后跟一个或几个字符,转义字符具有特定的含义。转义字符的两种含义,一是把字符转移为其他意义;二是把定界符转义为原来字符的意义
在这里插入图片描述

示例一:
int main()
{
	char a = '0';
	char b = '\0';
	char c = 0;
	char d = 'a';
	return 0;
}

示例二:
int main()
{
	char a=''';
    char b='\'';
	char c = '"';
	char e = '\"';
	char f = '\';
	char g = '\\';
	return 0;
}
**单引号包双引号时可不加转义字符**
   **\n   换行符(LF),将当前的位置移到下一行开头**
   **\r   回车符(CR),将当前位置移到本行开头**
   **\t 水平制表符(HT),跳到下一个TAB位置**

在这里插入图片描述

单引号包双引号时可不加转义字符在这里插入图片描述

五.存储区域分类,可见期和生存期

在这里插入图片描述

在这里插入图片描述

凡是在函数之外定义的变量,都在数据区,凡是在函数内定义的变量都在栈区。
可见性(作用域)和生存期(程序执行时才可谈论)
程序执行时才开始分配空间
作用域(可见性):指标识符能够被使用的范围;只有在作用域内标识符才可以被使用。
此阶段对编译和链接过程:
(1)函数中定义的标识符,包文件中定义的全局变量用域都在该函数内,也称函数域
(2)文件作用域也称全局作用域,包括所有函数之外的标识符,具有文件作用域,文件从定义处到整个文件结束,文件中定义的全局变量都具有文件作用域。
生存期也叫生命期,此阶段针对的是程序的执行过程。
生命期指的是标识符从程序开始运行被创建,具有存储空间,到程序运行结束时消亡,释放存储空间的时间段。
(1)局部变量的生存期是:函数被调用,分配存储空间,到函数执行结束,存储空间释放。存储stack区。
(2)全局变量的生存期是:从程序运行前开始,到执行后结束,存储在data区。
(3)动态生命期是:标识符由特定的函数调用或运算来创建和释放,如调用malloc()变量分配存储空间,变量的生命期开始,而调用free()释放空间或程序结束时,变量生命期结束,具有动态生命期的变量存储在堆区heap。

六.数组的定义

数组是包含给定类型的一组数据,即相同类型的一组数据的集合
在这里插入图片描述

七.运算符优先级

在这里插入图片描述
运算符举例:
1.%(余数)取模
2.*=,+=
3.三目运算符
取模运算在C语言中的应用:
1.判断是否能够整除某个数;
2.判断奇偶数,判断质数(或素数);
3.计算范围。形成循环;
4.求最大公约数;求最大公约数最常见的方法是欧几里得算法
其计算原理依赖于定理:gcd(a,b)=gcd(b,a mod b)

(1)关系运算符

关系运算符的优先级低于算术运算符,高于赋值运算符(<,<=,>,>=的优先级相同,高于==和!=)
10<=x<=20(错误);x>=10&&x<=20(正确)

(2)“非”运算符

int a=10;int b=0;
int b=!!a;
a=10;b=1;

(3)逗号表达式结果取决于最右边的算式

前置++和后置++的区别:
在这里插入图片描述

八.指针

存储地址的变量称为指针变量 C语言中指针就是地址
在这里插入图片描述
在这里插入图片描述

九.结构体

《1》当我们定义一个结构体变量,它的值得传递规则则遵循与内置类型的值的传递规则,形参的改变不会实参。
在这里插入图片描述
《2》在结构体里边定义一个数组,这个数组将作为结构体成员进行整体传递,不会像单个数组那样退化成指针
《3》结构体是一种数据类型,由程序人员自己设定;
<1>结构体不能被操纵,只能操纵由结构体定义出来的变量,使用结构体时只能通过·来访问它里边的成员
在这里插入图片描述
<2>对结构体变量进行初始化时,要与结构体中的顺序相对应
在这里插入图片描述

十.文件

读文件和写文件
1数据流:
指程序与数据的交互是以流的形式进行的。进行C语言文件的存取时,都会先进行“打开文件"操作,这个操作就是在打开数据流,而"关闭文件”操作就是关闭数据流。
2缓冲区(Buffer):

指在程序执行时,所提供的一块存储空间(在内存中),可用来暂时存放做准备执行的数据。它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动器快得多。

C语言的文件处理功能依据系统是否设置“缓冲区”分为两种: -种是设置缓冲区,另-种是不设置缓冲区。 由于不设置缓冲区的文件处理方式,必须使用较低级别的I/O函数(包含在头文件io.h和fcnt.h中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是C的标准函数,跨平台操作时容易出问题。下面只介绍第一种处理方式,即设置缓冲区的文件处理方式。

**当使用标准I/O函数(包含在头文件stdio.h中)时,系统会自动设置缓冲区,并通过数据流来读写文件。当进行文件读取时,不会直接对磁盘进行读取,而是先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后程序再从缓冲区中读取所需数据,**如下图所示:

在这里插入图片描述
文件类型:
分为文本文件和二进制文件两种。
文本文件是以字符编码的方式进行保存的。二进制文件将内存中的数据原封至文件中,适用于非字符为主的数据。如果以记事本打开,会看到一堆乱码。(除了文本文件外,所有的数据都可以算是二进制文件。二进制文件的优点在于存取速度快,占用空间小,以及可随机存取数据。
4.文件存取方式:
包括顺序存取方式和随机存取方式两种。
顺序读取也就是从上往下,一笔一笔读取文件的内容。保存数据时,将数据附加在文件的末尾。这种存取方式常用于文本文件,而被存取的文件则称为顺序文件。
随机存取方式多半以二进制文件为主。它会以一个完整的单位来进行数据的读取和写入,通常以结构为单位。

十一. C语言关键字

C语言的关键字共有32个,根据关键字的作用,可分为数据类型关键字,控制语句关键字。
1.控制类型关键字
void char short int long float double signed unsigned truct union enum typedef sizeof auto static register extern const volatile
2.流程控制关键字
if else switch case default for do while return continue break goto

(1)typedef关键字

把一切合法的变量定义,转换成类型声明;
在这里插入图片描述
在这里插入图片描述

(2)static关键字

当拿静态关键字修饰局部变量时,此局部变量开辟的空间就会映射到数据区(含有静态局部变量的函数,称之为记忆函数,可以记住上一次调用此函数是,局部变量的值)
(6)用const修饰的变量(必须初始化),只可读不可赋值

附:
查找字符,必须调用库函数<ctype.h>
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值