C语言粗笔记(1)

C语言是一门计算机语言——人和机器交流得语言(c语言,c++,JANA,Python)
计算机得发展——早期能识别是二进制。

计算机是硬件,通电,电分,正电和负电,计算机中用0表示负电,1表示正电,计算机能处理的都是电信号,0,1这样的信号,二进制语言。所以要计算机运行某个程序只需给它一段二进制序列。
一开始打某个程序要打一大串代码如:100001110110
记得这些太难,所以人们就想能否给某段代码代表的某个程序指令起个名
如1000011——ADD(助记符)
以后只要打ADD就好了,它就知道或转成1000011.
而这助记符就是汇编语言。
到后来的发展人们想要一句话能代表好多串代码,也就有了B语言——C语言,C++,……(高级语言)

C语言——早期不成熟——成熟——流行
早期不成熟时:各家公司有各自定义的功能,那这样各家公司都有各自定义的功能出现,我家c语言在你家编译器软件中过不了,在他家编译器中过不了。那这时就出现了国际标准。
ANSICC(美国国家标准局)——C89(年推出)/C90 (89,90相似)
后来ISO认定C89为彻底的国际标准。
C99/C11 并不流行,很多编译器不支持,大家按同一标准才能好的流行起来,才能在各个编译器中运行的跑起来。

C语言时一门面向过程的计算机编程语言,与C++,JAVA,等面向对象的编程语言有所不同,其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

第一个C语言程序

.c——源文件
.h——头文件
在这里插入图片描述

Main

:主函数:程序入口,程序从main函数第一行入口,不加main函数它就不知道从哪一行先开始。
那多加几个呢?
也一样入口太多它不知道从哪先开始。所以主函数有且仅有一个,也不可没有。

数据类型

在这里插入图片描述
在这里插入图片描述

要把A存起来哪的有空间,哪现在我们就计算机向内存申请一个空间,让ch取申请并把空间名取位ch,来存放字符A。

常用数据类型对应打印符号

%c//打印字符格式的数据类型;
%d//打印整型十进制数据类型;
%f//打印浮点型数字;
%p//以地址的形式打印;
%x//打印以十六进制数据类型;
为什么出现这么多类型?
每种类型的大小是多少?
答:数值范围不同,为了减少内存,对应数字对应类型,所占空间不同。
在这里插入图片描述

C语言标准规定sizeof(long)>=sizeof(int)
目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别:
32位编译系统:int占四字节,与long相同。
64位编译系统:int占四字节,long占8字节,long数据范围变为:-263~263-1

Sizeof():

计算xx所占空间大小,单位字节;
计算机中的单位
计算机是一个硬件,通电,它识别电信号,电分正负,正为1,负为0,电信号转为计算机能够识别的信号1和0.计算机能识别正负,证明它能识别1和0这样的信号。
那1和0,这样的指令需要空间来存放,存放1或0这样的一个空间大小就是一个比特位.(存放一个二进制位)。
在这里插入图片描述

一个字节8个比特位;
比如三个比特位时有23种可能且数据最大为23-1;
十六个比特位有216种可能且数据最大为216-1;
在这里插入图片描述

报错,

float

是单精度,95.6被它认为是双精度
所以有时在95.6后加f就好。但有时也不可只能改。
在这里插入图片描述
在这里插入图片描述

变量

在这里插入图片描述

全局变量:定义在代码块({})之外的变量;
局部变量:定义在代码块({})之内的变量;
在这里插入图片描述

&:取地址,告诉他这个输入数据要放这。
在这里插入图片描述

计算机内存很大取名方便给内存划分成小块,找起来容易,就比如取地址直接取到num1;
在这里插入图片描述

局部变量只能在{}中使用;
局部变量和全局变量的名字建议不要相同。易产生bug
当局部变量和全局变量同时存在时局部变量优先;
变量的作用域和生命周期
作用域:程序设计的概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的。而限定这个名字的可用的代码范围就是这个名字的作用域。

变量的作用域

  1. 局部变量的作用域是变量所在的局部范围;
  2. 全局变量的作用域是整个工程;

extern外部符号的声明

在这里插入图片描述

在这里插入图片描述

shazi,放在代码块{}外算全局变量;

生命周期:

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
4. 局部变量的生命周期是:进入作用域生命周期的开始,出作用或生命周期结束;
5. 全局变量的生命周期是:整个程序的生命周期。

猜你喜欢

转载自blog.csdn.net/m0_53126906/article/details/113398982