目录
首先 先讲解下怎么写代码
如下
//main - 固定的名字
//主函数 是程序的入口,写的C语言代码都是从main函数的第一行开始执行的
//main函数是必须有的,但是有且仅有一个
//
//C语言中所有的字符都是英文的字符
//int 是整型
int main()
{
//写代码的地方
printf("hello world\n");
//printf 是库函数 - C语言的标准库中提供的一个现成的函数-直接可以使用
//功能是在屏幕上打印信息
//库函数的使用,是需要包含头文件的,printf需要的头文件叫:stdio.h
return 0;
}
//非常古老的写法 - 不推荐
void main()
{
printf("hehe\n");
}
//可以的
int main(void)//void是在明确表示main函数不接收参数
{
//...
return 0;
}
//可以的
int main(int argc, char* argv[])//int argc, char* argv[] 是在指定main函数的参数
{
//...
return 0;
}
1.什么是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等。
2.第一个C语言程序
#include
int main()
{
printf("hello world\n");
return 0;
}
//解释:
//main函数是程序的入口
//一个工程中main函数有且仅有一个
3.数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));//1
printf("%d\n", sizeof(short));//2
printf("%d\n", sizeof(int));//4
printf("%d\n", sizeof(long));//4
printf("%d\n", sizeof(long long));//8
printf("%d\n", sizeof(float));//4
printf("%d\n", sizeof(double));//8
printf("%d\n", sizeof(long double));//8
运行结果如下
这是数据类型内存所占用的空间大小
seziof可以查看数据类型所占用的空间大小
4.变量与常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
4.1.定义变量的方法
int age = 150;
float weight = 45.5f;
char ch = 'w';
你写45.5编译器会默认为double类型
如果你想写成float类型的变量需要在后面加个f进行转换
4.2变量的命名
1.只能由字母(包括大写和小写),数字和下划线(_)组成 int a*3;//err
2.不能以数字开头 int 2b;//err
3.长度不能超过63个字符。 int _2b;//ok
4.变量名中区分的大小写的。 int _2B;//ok
5.变量名不能使用关键字 int char;//errr
变量的名字尽量写成有意义的
4.3变量的分类
1.局部变量
2.全局变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{
int local = 2018;//局部变量
int global = 2020;//局部变量
printf("global = %d\n", global);
return 0;
}
问:下面定义的global会不会有问题?
答:上面的局部变量global变量的定义其实没有什么问题的
当局部变量和全局变量同名的时候,局部变量优先使用
4.4变量的使用
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
这里介绍一下
scanf是输入语句
printf是输出语句
4.5变量的作用域和生命周期
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用 的
而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
4.6常量
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量
下面以代码的形式展示
#include <stdio.h>
//举例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量
//pai = 5.14;//是不能直接修改的!
//#define的标识符常量 演示
#define MAX 100
printf("max = %d\n", MAX);
//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
运行结果如下
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。