目录
1.什么是C语言?
2.第一个C语言程序
3.数据类型
4.变量,常量
4.1变量的创建方法
4.2变量的命名
4.3变量的分类
4.4变量的使用
4.5变量的作用域和生命周期
4.6常量
5.字符串+转义字符+注释
5.1字符串
5.2转义字符
5.3注释
6.选择语句
7.循环语句
8.函数
9.数组
9.1 数组的定义
9.2数组的下标
10.操作符
计算机语言:人和机器交流的语言,如Java,C,C++,python,上千种计算机语言C语言是其中的一种。
计算机语言的发展史:
二进制-汇编语言-B语言-C语言-C++-JAVA
低级语言 高级语言
写一个C语言代码,打印hello Word。
#include
int main
{
printf("hello word!\n");
return 0;
}
解析:
include 是包含的意思
stdio.h 全称 standard input output 标准输入输出头文件
int 整型 - 整数
main 主函数 主函数是程序的入口 C语言代码中必须有主函数 但是有且仅有一个main函数 printf 打印函数 专门用来在屏幕上打印数据的 是C语言标准库中提供的一个库函数
return: 0-返回
存在这么多类型,其实是为了更加丰富的表达生活中的各种值
sizeof:计算他们大小
#include
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
return 0;
}
他们的大小是1244848,单位是字节。
C语言中不变的值概念叫做常量,变的值用变量表示。
类型+变量名=值
例:int age = 10;
解析:int为整形,age为年龄,10为值。
大括号内部叫局部变量,大括号外部叫全局变量
#include
int a=10;//全局变量
int amin()
{
int b=20;//局部变量
return 0;
}
上图所示,a为全局变量,b为局部变量。
如果全局变量和局部变量名字冲突,局部变量优先使用
例:写一个代码,计算两个数的和。
#include
int main()
{
int a=0; //定义一个变量a
int b=0; //定义一个变量b
int sum=0;
printf("请输入两个数");
//输入数据
scanf("%d %d",&a &b);
//计算求和
sum=a+b;
//输出结果
printf("sum=%d\n",sum); //以数字的形式打印sum
return 0;
}
scanf是一个库函数,可以从键盘上接收数据 输入函数
printf专门用来在屏幕上打印数据的 输出函数
作用域:
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用得到的名字补总是有效/可用
而限定这个名字的可用性的代码范围就是这个名字的作用域。
生命周期
变量的生命周期是指变量的创建到变量的销毁之间的一个时间段
1.字面常量
1; 整形字面常量
3.14; 浮点型字面常量
"ABCD"; 字符串字面常量
'A'; 字符字面常量
2.const修饰常变量
拥有常属性的变量
用法:当一个变量不想让它改变的时候,可以使用。
3.#define定义的标识符常量
用法:#difine+变量名+数值
4.枚举常量
enum 枚举关键字
一一列举
#include
enum COLOR//定义的枚举关键字叫COLOR
{
RED,//枚举常量
GREE,
BLUE
};
int main
{
enum COLOR c=RED;
return 0;
}
"hello word"
由双引号引起来的叫字符串字面值,简称字符串。
字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候,\0是结束标志,不算做字符串的内容。
转义:转变原来的意思
转义字符 | 释义 |
---|---|
cc |
在书写连续多个问好时,防止他们被解析成三字母词 |
\' | 用于表示字符常量 ‘ |
\" | 用于表示一个字符内部的双引号 |
\\ | 用于表示一个反斜杠,防止他被解释成为一个转义字符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | 表示1~3个八进制数字。 |
\xdd |
dd表示2个十六进制数字。 |
1.代码中有不需要的代码可以直接删除,也可以注释掉
2.代码中有些代码难懂,可以加一下注释文字
VS里面的快捷注释方法:
注释:Ctrl+k Ctrl+c
取消注释Ctrl+k Cu
人生处处是选择,比如你有十元钱吃早饭,你是吃五元的热干面还是十元的牛肉面呢?
这就要用到我们的if else语句。
#include
int main()
{
int a=0;
printf("你早饭是吃五元的热干面,还是十元的牛肉面呢?(5/10)");
scanf("%d",&a);//输入
if(a==5)
printf("热干面");
else if(a==10)
printf("牛肉面\n");
else
printf("输入错误");
return 0;
}
如果输入了5元,那就是选择了热干面,如果输入的10元,那就是选择了牛肉面。
生活中有些事必须一直做,比如日复一日上班,日复一日学习。
#include
int main()
{
int a=0;
while(a<=10000)
{
print("敲代码");
a++;
}
if(a>1000)
printf("好offer");
return 0;
}
当你敲代码到10000行的时候,你就可以拿一个好offer,没到10000行,你就要不停的学习不停的敲代码。
用函数计算两个数的和
#include
int add(int x ,int y)
{
int z = x + y;
return z;
}
int main()
{
int a = 0;//定义两个变量
int b = 0;
int sum = 0;
printf("请输入两个整数");
scanf("%d %d",&a,&b);//输入
sum =add (a , b);//定义函数add,调用函数add
printf("%d",sum);打印sum
return 0;
}
函数的特点就是简化代码,代码复用。
C语言中给数组的定义:一组相同类型元素集合
int arr[10]={1,2,3,4,5,6,7,8,9,10};
//整形 名字 初始化
//数组的创建和初始化
数组的下标是从0开始的
数组的访问:
#include
int main()
{
// 指定数组的元素个数
// |
int arr[10]={1,2,3,4,5,6,7,8,9,10};
//下标 0 1 2 3 4 5 6 7 8 9
//想访问7的话,就要访问它的下标6
printf("%d\n",arr[6]);
return 0;
}
C语言提供了非常多的操作符,使得C语言非常灵活。
算数操作符
+ - * / %
加 减 乘 除 取模(取余)
加减乘除和日常生活中的一模一样,重点要认识 / 和 %
#include
int main()
{
int a=17/4
//a=4
//除号求的是商
int b=17%4
//b=1
//取余求的是余数
return 0;
}
%操作的两个操纵作书必须都是整数
移位操作符
>> <<
位操作符
& ^ |
这些操作符与二进制有关,初识C语言,可以先认识一下,以后的文章会详解。
赋值操作符
= += -= *= /= &= %= ^= |= >>= <<=
= 要分清楚初始化和赋值
#include
int main()
{
int a=0; //初始化:创建变量的同时给一个值,这叫做初始化
a=10; //赋值
a=a+10;
//也可以写成:
a+=10;
return 0;
}
+= -= *= /= &= 都被称为符合赋值符后面的&= %= ^= |= 以后再学习 >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
! 它可以表示相反的逻辑
C语言中要表示真和假的时候,把0视为假,非0视为真
#include
int main()
{
int a=5;
//a为真,就打印真
if(a)
{
printf("真\n");
}
//a为假,就打印假
if(!a)
{
printf("假\n");
}
return 0;
}
正值和负值
#include
int main()
{
int a = 10;
int b = -a;
printf("%d\n",b);
//结果为-10,因为a是10,-a就是-10
return 0;
}
sizeof是操作符,是计算变量所占空间的大小,单位是字节
++和--
后置++
#include
int main()
{
int a = 100;
int b = a++;
//后置++,先使用后++
printf("%d %d",a,b);
//a的值为101,b的值为100
return 0;
}
前置++
#include
int main()
{
int a = 100;
int b =++a;
//前置++,先++,后使用
printf("%d %d",a,b);
//a的值为101,b的值为101
return 0;
}
--的逻辑和++是一样的
后置--
#include
int main()
{
int a = 100;
int b = a--;
//后置--,先使用,后--
printf("%d %d",a,b);
//a的值为100,b的值为99
return 0;
}
前置--
#include
int main()
{
int a = 100;
int b =-- a;
//前置--,先--,后使用
printf("%d %d",a,b);
//a的值为99,b的值为99
return 0;
}
(类型) 强制类型转换
#include
int main()
{
int a = (int)3.1415;
printf("%d",a);
return 0;
}
如上代码所示,a为整形,但是赋值为浮点型,3.1415前面的(int)就是强制类型转换,把他转换成整形。
关系操作符
>
>=
<
<=
!=
==
>,>=,<,<=,这些关系操作符和数学中的一一模一样,这里着重了解一下==,!=。
C语言中,判断相等是用两个等号,一个等号会被编译器识别为赋值,两个等号是判断相等,!=是判断不相等。
例如:a=2; 这里是把a赋值成5
b==5; 这里是判断b等不等于5
逻辑操作符
&& 并且
|| 或者
&&和||只关注真假
&&两边同时为真,才为真
||两边同时为假,才为假
假设我们把年龄18~39的人称为青年,利用&&就可以写成以下代码。
#include
int main()
{
//定义年龄为18
int age = 18;
//如果年龄>=18,并且年龄<=36,我们就打印青年
if (age >= 18 && age <= 36)
printf("青年");
}
条件操作符
exp1 ? exp2 : exp3
这个会在后续写两个数比大小的时候,为大家展示。
逗号表达式
exp1,exp2,exp3.....expn
后续讲...
下标引用,函数调用和全文结构成员
[] () . ->
[] 下标引用操作符
在一串数组中,当我们要访问里面的元素,必须使用下标才能访问。
#include
int main()
{
// 指定数组的元素个数
// |
int arr[10]={1,2,3,4,5,6,7,8,9,10};
//下标 0 1 2 3 4 5 6 7 8 9
//想访问7的话,就要访问它的下标6
printf("%d\n",arr[6]);//这里的[]就是下标引用操作符
return 0;
}
() 函数调用操作符
#include
int add(int x ,int y)
{
int z = x + y;
return z;
}
int main()
{
int a = 0;//定义两个变量
int b = 0;
int sum = 0;
printf("请输入两个整数");
scanf("%d %d",&a,&b);//输入
sum =add (a , b);//定义函数add,调用函数add,这里就是函数调用操作符
printf("%d",sum);打印sum
return 0;
}
结构成员操作符会在以后的结构体部分讲...
因为内容太多了,另外一部分留着下一篇文章再讲,如果觉得有帮助的话可以关注我哦,我也会不断分享自己的所学。