什么是C语言?
C语言是一门通用的计算机编程语言,广泛应用于底层开发,C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码一机不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理器的功能,但仍然保持着良好的跨平台特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机)一机超级电脑等作业平台。
C语言是一门面向过程ed计算机编程语言,与C++和Java等面向对象的编程语言有所不同。器编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
第一个C程序
#include<stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
解释:
main函数是程序的入口
一个工程有且只有一个main函数
数据类型
char 字符数据类型
short 短整型
int 整型
long 长整型
long long 更长整型
float 单精度浮点数
double 双精度浮点数
各种数据类型的大小
#include<stdio.h>
int main()
{
printf("char的长度=%d\n",sizeof(char));
printf("short的长度=%d\n",sizeof(short));
printf("int的长度=%d\n",sizeof(int));
printf("long的长度=%d\n",sizeof(long));
printf("long long 的长度=%d\n",sizeof(long long ));
printf("float的长度=%d\n",sizeof(float));
printf("double的长度=%d\n",sizeof(double));
return 0;
}
运行结果如下:
各种数据类型的大小
常量和变量
不变的值,在C语言中用常量来表示;
变化的值,在C语言中用变量来表示。
定义变量的方法
char ch = 'w';
int weight = 120;
int salary = 20000;
变量的分类
局部变量和全局变量
#include<stdio.h>
int global = 2020;//全局变量
int main()
{
int local = 2021;//局部变量
int global = 2019;//局部变量
printf("global=%d\n",global);
return 0;
}
运行结果如下:
总结:
局部变量global的定义没有什么问题的!
局部变量和全局变量同名的时候,优先使用局部变量。
#变量的使用
#include<stdio.h>
int main()
{
int num1;
int num2;
int sum;
printf("输入两个操作数:>");
scanf("%d %d",&num1,&num2);
sum = num1 + num2;
printf("sum = %d\n",sum);
return 0;
}
这里介绍一下:
scanf 输入语句,一定要加&,因为输入的数据分别存入num1和num2这两个变量的地址的内存区域。
printf 输出语句。
变量的作用域和生命周期
作用域,即限定变量的可用性范围。
1、局部变量的作用域是:变量所在的局部范围。
2、全局变量的作用域是:整个工程。
生命周期,即变量的创建到销毁之间的时间段。
1、局部变量的生命周期是:程序运行进入作用域开始的那一刻到出作用域的那一刻。
2、全局变量的生命周期是:整个程序运行期间。
常量
C语言中的常量分为以下几种:
- 字面常量
- const修饰的常变量
- #define定义的标识符常量
- 枚举常量
#include<stdio.h>
enum sex
{
MALE,
FEMALE,
SECRET
};//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
const float pai = 3.14f;//const 修饰的常量
3.14;
1000;
#define MAX 100//#define的标识符常量
return 0;
}
字符串+转义字符+注释
字符串
"hello world.\n"
字符串:由双引号引起来的一串字符。
注意:字符串的结束标志是一个\0的转义字符,计算字符串长度的时候\0是结束标志,不能算作字符串内容。
#include<stdio.h>
int main()
{
char arr1[]="hello";
char arr2[]={'h','e','l','l','o'};
char arr3[]={'h','e','l','l','o','\0'};
printf("%s\n",arr1);
printf("%s\n",arr2);
printf("%s\n",arr3);
return 0;
}
运行结果如下:出现第二个结果的原因就是字符串的结尾没有\0
转义字符
在屏幕上打印出一个目录:D:\202107\test_7_5
#include<stdio.h>
int main()
{
printf("D:\202107\test_7_5\n");
return 0;
}
输出结果为:
打印结果和我们想要的结果一不一致,这就涉及到转义字符了。转义字符顾名思义就是转变的意思。
下面看一些转义字符:
转义字符 | 释义 |
---|---|
\? | 在书写连续多个问号是使用,防止它们被解析成三字母词 |
\’ | 用于表示字符常量 ’ |
\" | 用于表示字符串内部的双引号 |
\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进止符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。如:\130X |
\xdd | dd表示2个十六进制数字。如:\x30 |
#include<stdio.h>
int main()
{
printf("%d\n",strlen("abcdef"));
printf("%d\n",strlen("C:\test\328\test.c"));
return 0;
}
运行结果为:第一个运行为6,abcdef一共六个字符;第二个运行为14,因为转义字符的存在\t,\32,\t是三个字符,所以数一下就是14。
注释
1、代码中不需要的代码可以直接删除,也可以注释掉
2、比较难懂的代码,可以加文字注释
有两种注释风格:
1、/*xxxxx*/
缺点:不能嵌套注释
2、//xxxxxxx
可以注释一行或多行
选择语句
你如果好好学习,那么在校招的时候就会拿到一个很好的offer,走向人生巅峰。
你如果不好好学习,就只能回家种地。
这就是选择!
#include<stdio.h>
int main()
{
int m = 0;
printf("你会好好学习吗?(选择1 or 0):\n");
scanf("%d",&m);
if(m == 1)
{
printf("加油,你会收到一份好offer\n");
}
else
{
printf("很遗憾,你准备回家种地吧");
}
return 0;
}
循环语句
有些事情必须一致做,反复循环,比如大家必须日复一日的学习。
C语言中如何实现循环呢?
- while语句
- for语句(暂时不举例)
- do while语句(暂时不举例)
#include<stdio.h>
int main()
{
int n = 0;
printf("加入写代码的行列\n");
while(n<=20000)
{
n++;
printf("我要努力敲代码\n");
}
if (n>20000)
{
printf("我要赚很多很多的钱\n");
}
return 0;
}
函数
函数的特点就是简化代码,代码反复使用。
#include<stdio.h>
int Add(int x,int y)
{
int z = x + y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:\n");
scanf("%d %d",&num1,&num2);
sum=Add(num1,num2);
printf("sum = %d\n",sum);
return 0;
}