初识C语言(一)

一   计算机语言

'C语言'是一门计算机语言!

概念:'人'和'计算机'交流的语言-->C/C++、Java、Python

'社会'语言: 英语、汉语、日语-->'人和人'通信

计算机语言的发展:计算机'只能识别'二进制语言[只有0、1]

助记符汇编语言

(1)语言的发展过程

+++++++++++++++++++++++'早期'+++++++++++++++++++++++

1) 电脑[PC]是硬件、'通电'、只有'高点平'正电(1)|'低点平'负电(0)

备注:计算机只能'处理'的是'电信号',也就是'0和1'这样的东西-->'二进制数据'

补充:数字、模拟信号

eg:计算加法-->'数据'和'符号'全部都用'二进制'序列表示

缺点:早期查手册、只有科学家才'掌握'

+++++++++++++++++++++++'然后'+++++++++++++++++++++++

2) 汇编语言的产生

具体:给'特定二进制序列'起一个名字--> 帮助记忆的符号【'助记符'】

eg:1000001序列表示'加法'-->ADD【现在】

备注:用'助记符'来表达的'语言'叫'汇编语言'!

+++++++++++++++++++++++'最后'+++++++++++++++++++++++

3) 高级语言

汇编'门槛'太高,只有'少数人'可以编程;

优化:一句话代表'好多汇编语言'-->'B'语言-->'C'语言-->'C++'(高级语言)

语言'发展':低['层']级语言到高['抽象']级语言;越来越简单['全民学python']

(2)C语言发展

C语言的'发展'过程:早期'不是很成熟'-->'成熟'-->'流行(popular)'

1) '不成熟'阶段

 各家公司'定制'开发-->'不统一'-->你的'不能'在我的上面'跑'

2) '成熟'阶段

C语言的国际标准('ANSI' C89)-->'C90'(ISO)-->'C99'-->C11

备注:C99/C11并'不流行',不少的编译器'不支持'相关语法;但是当前似乎是'C99'的标准是当前'主流趋势'

C语言'国际标准'规范:大家都认可,导致'更加流行'

这里写图片描述

二    杂乱知识

'初识'-->大概认识、'简单'认识-->'点到为止'-->有这么个东西,后续'细讲'

(1)C语言常见的编译器

(2)main函数

#include <stdio.h>
int main(){
    printf("Hello C!\n");
}

+++++++++++++'解读'+++++++++++++

1) 工程化组织方式 .h头文件;.c源文件

2) printf是'库函数':C语言'本身提供'给我们使用的函数;是stdio.h文件中提供的

备注:printf是'别人提供'的东西,要使用'必须'先打招呼;打'招呼'的方式-->#include

3) #include <stdio.h>  -->包含一个叫作stdio.h的文件;引用一个头文件

 'stdio'-->standard input output(标准输入输出)

4) int main --> main前面的'int'表示'main函数调用'返回一个'整型值'

细节:void main() -->'过时'

备注:return 0; // 返回

(3)C语言的基本数据类型

1) 计算机语言'描述'现实世界

举例: 年龄【整型】、身高【浮点型】

2) long long -->'C99引入'

3) 双精度'小数位'比单精度高-->更精确

4) 创建变量会根据'变量类型'向'内存'申请'对应'空间大小

举例: 书放到书架上['存储']-->'首先'内存申请空间

(3) 基本数据类型的大小

问题: 每种类型的'大小'是多少

1)  sizeof(char|short|int) -->根据'对应变量类型'向'内存'申请'相应'空间大小 -->unit是'字节'

2)  C语言'没有'字符串类型

3)  long(可能是4或8)-->涉及'C语言的标准'sizeof(long)'>='sizeof(int);这个'取决于'32/64位平台

(4)为什么出现这么多的类型

计算机最位:bit(比特位-->'最小单位')、byte(字节)、kb(1024个byte)、mb、gb、tb、pb

1byte=8bit

备注:一个比特位可以表示'0'或'1'

权重:每一位的'权重'不同

  1) 123[10进制] = 100 * 1+ 2 * 10 + 3 *1

  2) 010[2进制]= 0*2^2 + 1*2^1 

++++++++++++++'原因'++++++++++++++

1)数值'范围'不同

2)'内存'空间

思考:人的'age'小于200岁,用short和int的区别?

后者:占用'空间'更多['4字节'],造成资源'浪费',所以要'合理'的申请空间

补充:4个字节-->32bit位-->表达'数字范围'[0, 2^32-1];'大材小用'

现在:空间'不浪费'-->age 用short 表示-->2个字节-->2^16 -1-->更加'合理',节省空间!

3)更加'丰富'的表达生活中的各种值

(5)printf输出函数

打印二进制

++++++++++++++'常见的占位符'++++++++++++++

%c -->打印'字符格式[character]'的数据;

%d -->打印整型'十进制[digit]'数据-->age

%f -->打印'浮点数'-->小数(float)

%lf -->打印'双精度'(double)

%p -->以'地址'的形式打印

%x -->打印'16[0x]进制'数字-->'重点'

%o -->打印8进制

(6)变量定义

char'变量类型' ch'变量名' = 值

1) 先声明-->根据'变量的类型'申请在内存中'开辟'相应的空间

2) 将值'保存'在该'变量标识'的内存空间中

备注: '&ch'表示该变量的'地址'

补充: 变量是'申请空间'的代名词

++++++++++++++++++++'细节'++++++++++++++++++++

float weight=65.5

备注: 可能存在'精度丢失'问题-->双精度会'强转'成单精度-->'警告'信息

float weight=65.5f // 建议方式

(7)局部变量和全局变量

核心: C语言'描述'常量和变量的'方式'

全局变量-->定义在'代码块({})之外'的变量-->'函数外'

局部变量-->定义在'代码块({})之内'的变量-->'函数中'

++++++++++++'注意事项'++++++++++++

1) 全局变量和局部变量'能同时存在'

备注:局部变量和全局变量的'名字相同'的时候,局部变量'优先'

2) 局部变量和全局变量的名字建议'不要相同',容易引起'歧义(误会)',产生bug

(8)变量的作用域生命周期

多文件 extern关键字

'局部变量'作用域:变量哪里可用,哪里就是它的作用域!

'全局变量'的作用域:整个'工程'

'main函数的'声明周期='全局变量'的声明周期='整个程序'的生命周期

(9)scanf

scanf("%d%d",&num1,&num2) -->输入数据['空白字符'分割],使用输入函数!

功能:C语言标准函数库中的'格式化输入函数'

&:'取地址'符号 -->把'第1个'数字放到这个num1地址处;把'第2个'数字放到这个num2地址处

C语言语法'规定':变量要定义在当前代码块的'最前面'!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值