大家好这里是三岁,C语言是各类语言的基础,由于个人学习需要特别开设了C语言基础专题,内容不一定深入,都是基础知识,还是白话C语言,最简单的方式带领大家学习不是那么容易理解的C语言!(该系列应该每周末更新直到系列结束,有问题的及时留言,会马上修改!)
C语言基础知识
C语言文件后缀名说明:
*代表的是通配符
- C语言文件:其拓展名为 *.c或者 *.cpp(c++)源文件名
- *.h 是头文件名(包含文件)可以使用
# include <* .h>
进行导入(相当于文件引用)
(拓展:类似于python中的import
)
学C语言前需要了解的计算机基础知识
计算机语言
语言是沟通交流的工具(区别在于不同的语言表达方式不同)
而计算机语言也类似:
是人与计算机之间的交流的方式(工具)
计算机语言可以分为低级语言
和高级语言
下面对内容进行了分析:
语言三要素:语法、词汇、语义;
白话三要素:
语法:对应于C语言的一些特定语法:if、else……
词汇:对应的应该是保留的关键字
语义:就是对指定的代码的解析(a=1对应把1赋值给a)
内存
计算机内部存放中间结果的,是临时数据存放的地方。
在内存中按照字节(Byte)划分存储单元
1Byte == 8bit
类型 | 大小 |
正整数(无符号整数) | 0 ~ 255 |
带符号数 | -128 ~ 127 |
为什么呢?
计算机中,如果是带符号的第一位就代表了符号 0代表正的、1代表负的。
- 无符号整数:
带符号数
内存地址:每个字节给予一个从0开始的顺序编号。
小知识:
设在C语言中:char * p存在一个内存中。
变量p分配的内存是__sizeof(unsigned)__B.(固定大小是4)
每保存一个数据就会给出一个地址:数据占据
如果一个数据的内容太大了(占据多个字节时):以首地址(低位地址)作为数据存储单元地址。(假设初始是128,占了6个位置那么他的地址就是128(可以理解为学号))
CPU根据内存地址范围数据(访问需要知道访问地址和访问的大小(字节数))
白话:
访问地址类似于你家的门牌号,几栋几单元
但是还是不知道你在哪个房间,还需要一个访问大小
类似于第几个房间或者是到第几个房间(简易理解不代表正确)
地址是数值(整数类型):经过符号化生成了变量
程序员通用变量访问数据(数据初始化地址)但是没有大小,这个时候就出现了数据类型
类型 | 首地址 | 大小 | 字节数 |
int a | &a | sizeof(int) | 4 |
char b | &b | sizeof(char) | 1 |
double c | &c | sizeof(double) | 8 |
内存中的数据存放
内存的数据都是以补码的形式进行存储的。
里面分为真值
、原码
、反码
、补码
emmmm这个不好 解释逐个来白话
真码:有正负号的二进制(十进制、八进制、十六进制)数据
例如:12、-1902……
原码:真码的二进制值
例如 :1100、111 0110 1110
反码 :正数的反码等于原码,负数的反码是原码符号位不变其他位取反
补码:正数的补码等于反码,负数的补码是反码符号位不变其他的取反加一
正数
负数
C语言序论
发展史 :源于上世纪60年代末、70年代初
由B语言发展而来。
优点:效率高,可移植性较好。
C语言是结构化面向过程的编程语言。
C语言程序组成
- C语言程序由函数组成
- C语言中main() (主函数)是程序的入口
- 主函数在一个程序里面有且只有一个
- C语言面向的过程可以是:子程序、函数、模块
函数头:
函数返回值类型 函数名(形参列表)冒号
形参列表:
类型1 参数1, 类型2 参数2,……,类型n 参数n
举例:
int add(int x, int y):
函数主体: 变量申明语句、函数功能完成语句、return返回语句
- 变量声明语句:
变量类型 变量名 = 变量初始值 (语言解析:把变量初始值赋值给属于变量类型的变量名)
- 函数功能完成语言:
使用C语言的语法完成有关的内容
- return返回语句:
就是把需要的计算结果进行返回用于其他函数或代码的使用。
(void类型没有数据返回,int类型有返回是整型,以此类推……)
举例:
#include<stdio.h> // 文件引用 #define pi 3.14 // 定义pi的值为3.14 void main() // 定义空主函数(程序入口) { float area,p,r; //变量声明语句 定义变量 // 函数功能完成语言,通过输入输出和公示完成内容 printf("圆的半径:");//输出内容 scanf("%f,");//输入一个字符串类型数据 area=(float)pi*r*r;//计算圆的面积 printf("圆的面积:%6.2f\n",area);//输出圆的面积 p=(float)pi*2*r;//计算圆的周长 printf("圆的周长:%6.2f\n",p);//输出圆的周长 return;//无返回值 }
C语言的执行
- 编辑—— 编辑源程序(*.c 、 *.cpp)
- 编译——生成目标程序(*.obj) 将.c文件编译成二进制代码
- 链接——生成可执行文件(*.exe)
C语言的数据类型—非数字型
非数字类型:字符、字符串
- 字符:用单引号括起来的一个字符
- 字符串:用双引号括起来的若干有限个字符序列。
注:一个汉字占两个字符位
字符串内占字节空间数 = 字符数+1(多了一个’\0’)
ASCII码
美国信息交换标准代码:是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准.
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号
字符在C语言中存放 (或者是在C语言中的表示)是对于ASCII码的码字
经常使用的字符 | 对应的ASCII码 |
‘a’ - ‘z’ | 97 - 122 |
‘A’ - ‘Z’ | 65 - 90 |
‘0’ - ‘9’ | 48 - 57 |
’ ’ (空格) | 32 |
‘’(空) | 0 |
转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
- 区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换
- \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’
如果'\字符'
合起来表示一个特殊字符则发生转义,如果不符合则不能够表示特殊字符 应该理解为两个字符。
今天的资料就整理到这里了,非常感大家的关注,如果好就来个一键三连吧!