了解
C
语言的基础知识,对
C
语言有一个大概的认识。
一、C语言基本介绍
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。二十世纪八十年代,美国国家标准局为了避免各开发厂商用的C语言语法产生差异,给C语言制定了一套完整的美国国家标准语法,称为ANSI C。作为C语言最初的标准。2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
二、第一个C语言程序
#include <stdio.h>
int
main
()
{
printf
(
"hello world"
);
return
0
;
}
//main函数有且仅有一个
三、数据类型
这里展示几个常用的数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
printf必须使用对应的转换说明符才能打印对应的数据类型数据,那么他们所对应的转换说明符分别是:
char //%s
short //%hd
int //%d
long //%ld
long long //%lld
float //%
double //%
那么这些类型对应的大小是多少呢?让我们运行一下看看
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(long double));
return 0;
}
![](https://img-blog.csdnimg.cn/12b2cd43b8c446dd8bbd03ff0d0e860b.png)
四、变量 常量
4.1变量的定义
int age =20;
char a=‘c’;......
变量名由自己定义,但不能与一些关键字重复
4.2变量的分类
我们把变量分为了局部变量和全局变量如代码所示
#include <stdio.h>
int
global
=
2019
;
//
全局变量
int
main
()
{
int
local
=
2018
;
//
局部变量
int
global
=
2020
;
//
局部变量
printf
(
"global = %d\n"
,
global
);
return
0
;
}
//这里当局部变量和全局变量的名字相同时,局部变量优先
一个局部变量不给初始化的话,默认为随机值
4.3变量的使用
#include <stdio.h>
int
main
()
{
int
num1
=
0
;
int
num2
=
0
;
int
sum
=
0
;
printf
(
"
输入两个操作数
:>"
);
scanf
(
"%d %d"
,
&
a
,
&
b
);
sum
=
num1
+
num2
;
printf
(
"sum = %d\n"
,
sum
);
return
0
;
}
//
这里介绍一下输入,输出语句
//scanf
//printf
4.4变量的作用域和生命周期
作用域
作用域(
scope
),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效
/
可用
的
而限定这个名字的可用性的代码范围就是这个名字的作用域。
1.局部变量的生命周期是变量所在的局部范围。
2.
全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1.
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.
全局变量的生命周期是:整个程序的生命周期。
4.5常量
C
语言中的常量和变量的定义的形式有所差异。
C
语言中的常量分为以下以下几种:
字面常量
const 修饰的常变量
#defifine 定义的标识符常量
枚举常量
#include <stdio.h>
//
举例
enum
Sex
{
MALE
,
FEMALE
,
SECRET
};
//
括号中的
MALE,FEMALE,SECRET
是枚举常量
int
main
()
{
3.14
;
//
字面常量
1000
;
//
字面常量
const
float
pai
=
3.14f
;
//const
修饰的常量
pai
=
5.14
;
//ok?
#define MAX 100
//#define
的标识符常量
return
0
;
}
五、字符串+转义字符+注释
5.1字符串
"hello world.\n"
这种由双引号(
Double Quote
)引起来的一串字符称为字符串字面值(
String Literal
),或者简称字符串。
注:字符串的结束标志是一个
\0
的转义字符。在计算字符串长度的时候
\0
是结束标志,不算作字符串内容。
#include <stdio.h>
//
下面代码,打印结果是什么?为什么?(突出
'\0'
的重要性)
int
main
()
{
char
arr1
[]
=
"abc"
;
char
arr2
[]
=
{
'a'
,
'b'
,
'c'
};
char
arr3
[]
=
{
'a'
,
'b'
,
'c'
,
'\0'
};
printf
(
"%s\n"
,
arr1
);
printf
(
"%s\n"
,
arr2
);
printf
(
"%s\n"
,
arr3
);
return
0
;
}
这里打印的arr2打印出来的是随机值
5.2转义字符
\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\' 用于表示字符常量'
\“ 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0
#include <stdio.h>
int
main
()
{
//
问题
1
:在屏幕上打印一个单引号
'
,怎么做?
//
问题
2
:在屏幕上打印一个字符串,字符串的内容是一个双引号
“
,怎么做?
printf
(
"%c\n"
,
'\''
);
printf
(
"%s\n"
,
"\""
);
return
0
;
}
举例:
#include <stdio.h>
int
main
()
{
printf
(
"%d\n"
,
strlen
(
"abcdef"
));
// \32
被解析成一个转义字符
printf
(
"%d\n"
,
strlen
(
"c:\test\328\test.c"
));//\t也被作为转义字符所以这里打印出来为14
return
0
;
}
5.3注释
注释有两种风格:
C
语言风格的注释
/*xxxxxx*/
缺陷:不能嵌套注释
C++
风格的注释
//xxxxxxxx
可以注释一行也可以注释多行
结语
后面还有分支循环语句、函数、数组、操作符详解、指针、结构体放到后面文章进行阐述