准备好了吗/strong>
目录
准备好了吗/p>
首先,我们先了解一下C语言历史~
接下来让我们准备一下合适的编译器软件吧~
下载完成后是不是迫不及待打开试一下呀~
是不是觉得太简单而无聊了下来开始干货:
数据类型:
那么思考:为什么出现这么的类型呢/p>
每种类型的大小是什么/p>
整型
浮点型
变量、常量
字面常量
define定义的常量
const 修饰的常变量
枚举常量
变量
变量的分类:
变量的使用
变量的作用域和生命周期
字符串+转义字符+注释
字符串
转义字符
注释
函数
数组
操作符
关系操作符
逻辑操作符
条件操作符
逗 表达式
下标引用、函数调用和结构成员
常见关键字
define定义的常量和宏
指针
指针的大小
结构体
首先,我们先了解一下C语言历史~
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设 计目标是 提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能 运 行的编程 语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以 一 个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及 超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目 前 2011年12月8 日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语 言的第三个官方标 准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。 C语言是一门面向过程的计算机编程语 言,与C++,Java等面 向对象的 编程语言有所不同。 其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
接下来让我们准备一下合适的编译器软件吧~
VS2019在这里下载哦~(可免费使用的软件):https://www.bilibili.com/video/BV17p4y1h7yR/
下载完成后是不是迫不及待打开试一下呀~
让我们用编译器向世界打个招呼吧!
运行结果如下:
//解释:main函数是程序的入口,一个工程中main函数有且仅有一个。
是不是觉得太简单而无聊了下来开始干货:
数据类型:
那么思考:为什么出现这么的类型呢/h3>
每种类型的大小是什么/h3>
每种类型对应的字节大小:
注意:存在这么多的类型,不仅是为了更加丰富的表达生活中的各种值,更是为了能够根据数据范围选择合适的数据类型,对内存空间合理的利用。
那么我们应该怎么合理选择合适的数据类型呢/p>
整型
如果我们定义的目标数字不太大,例如年龄,一般不会超过120岁(当然有例外,这时候可以用后面介绍的类型),我们可以用char(-128~127)来定义;统计年级人数时,人数可能几千人,我们可以选择short(-32768~32767)类型来定义。
当然在练习过程中我一般喜欢用int来定义,不用考虑太多的麻烦。
下面是我整理的-整型的有符 数取值范围:
char -128~127
short -32768~32767
int -2^31~2^31-1
long -2^64~2^64-1
浮点型
float: 单精度,精度是2^23, 能够保证六位。
double: 双精度,精度是是2^52,能保证15位。
变量、常量
生活中有些值是不会改变的(比如:圆周率、性别(、身份证 码等等)
有些值是可以改变的(比如:身高、年龄、物价等等)
类比于C语言,不变的值叫做常量,改变的值叫做变量。
字面常量
define定义的常量
注意:arr[ ]的”[]”里面只能放常量,如果上面代码可行,实际上就是#define定义的就是常量。
方法:define +空格+字母(习惯上用大写)+数字 ————-(注意后面没有分 )
const 修饰的常变量
此时const修饰的变量a不能再被更改,编译器不能过去。这可以对不想改变的量就行锁定,不会被不小心更改。
注意:在这里要说明的是,const修饰的变量a还是常量,只是被赋予了常属性。
枚举常量
#include
//举例
enum Sex
{
MALE,
FEMALE,
SECRET,
};
//括 中的MALE、FEMALE、SECRET是枚举常量
变量
定义变量的方法:
变量的分类:
局部变量
全局变量
#include
int a=1;//全局变量
int main()
{
int b=2;//局部变量,就是放到main函数内部的变量
int a=2;//在main函数内外都定义一个变量,赋给不同的值会不会出错呢出错的话打印的 //a是多少呢/p>
printf(“%dn”,a);
printf(“%dn”,b);
return 0;
}
运行结果如下:
这说明了什么呢—全局变量和局部变量可以同名定义,这时候局部变量优先使用。(划重点)
变量的使用
#include
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf(“请输入两个操作数:n”);
scanf(“%d%d”, &num1, &num2);
sum = num1 + num2;
printf(“%dn”, sum);
return 0;
}补充一下:输入函数scanf和输出函数printf使用的知识。
可以看到:变量num1取2,变量num2取3 后算出的的值。
变量的作用域和生命周期
作用域:
程序设计概念上通常来讲,一段程序代码中所使用的名字总不是一直可行有效的。
而限制这个所使用的名字可行范围叫作作用域。
注意:1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期:
变量的生命周期是指变量的创建到变量的销毁之间的一个时间段。
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
字符串+转义字符+注释
字符串
字符串:” Hello world ! n “
这种由双引 引起来的一串字符成为字符串字面值,简称字符串。
注意:字符串的结束标志是一个 的转义字符(虽然表面上没有体现出来,知人知串不知心啊)。在计算字符串长度的时候 是结束标志,不算作字符串 内容;在计算字符串空间大小时, 却包括在内。
在具体打印字符串的时候 具体起到什么作用呢/p>
直接上代码:
#include
int main()
{
char arr1[] = “bit”;
char arr2[] = { ‘b’,’i’,’t’ };
char arr3[] = { ‘b’,’i’,’t’,’ ’ };
printf(“%sn”, arr1);
printf(“%sn”, arr2);
printf(“%sn”, arr3);
return 0;
}
从运行结果我们可以看到,在字符串结尾有 时打印的是”bit”,没有 的打印的是”bit烫烫烫烫蘠it”.
总结: 是字符串结束的标志,但是在实际打印中不会去打印。如果后面没有 时,在打印过程中系统会一直往后面寻找,一直找到 才会停止打印。
注意:arr1定义的字符串后面有一个默认的 .
转义字符
如果我们想要在屏幕上打印一个目录: c:codetest.c
我们会不会这样写/p>
#include
int main()
{
printf(“c:codetest.c\n”);
return 0;
}
这样写的结果却是这样:
发现这不是我们想要的结果啊!怎么回事/p>
这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。 下面看一些转义字符。
#include
int main()
{
//在屏幕上打印一个单引 ‘,怎么做引 呢br> printf(“%cn”,”’);
printf(“%sn”, “””);
return 0;
}
实际结果如下:
如果没有那个“多余的”— ‘’结果会怎么样/p>
哎呀,是不是发现出错了。不难得出结论,转义字符就是转变意思。
再来练习一下:
那我们打印n该怎么做呢/p>
笔试题:
//程序输出什么/p>
#include
int main()
{
printf(“”%dn””
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!