[C语言学习]C语言程序设计基础(一)

211 阅读7分钟

C语言程序设计基础(一)

大家好这里是三岁,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&asizeof(int)4
char b&bsizeof(char)1
double c&csizeof(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字符意思了。

在这里插入图片描述

  1. 区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换
  2. \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’

如果'\字符'合起来表示一个特殊字符则发生转义,如果不符合则不能够表示特殊字符 应该理解为两个字符。

今天的资料就整理到这里了,非常感大家的关注,如果好就来个一键三连吧!

[C语言学习]C语言程序设计基础(二)[点击传送]