- 什么是C语言
- C语言是一门计算机语言,计算机语言是人和计算机交流的语言
- 计算机语言包括C/C++,Java,python
计算机语言的发展
- 二进制语言
- 计算机通电,而电压只有正负,所以用二进制语言
- 汇编语言
- 101000001-ADD-(助记符)加法
- B语言
- 高级语言
- C语言,C/C++,JAVA
- C语言国际标准ANSIC-89年-C89/C90
- C99/C11并不流行
编写C语言程序
写C语言
- 创建工程
- 添加源文件
- 写代码
- CTRL+F5运行
C代码
- .c是源文件
- .h是头文件
编译器显示太快怎么解决
- 右击项目名称-属性-连接器-系统-子系统-将子系统改为控制台-应用确定
主函数
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()//主函数
{
return 0;
}
int ,main()
{
//这里完成任务
//函数-print function -printf-打印函数
printf("hello 比特\n");//'\n'表示换行
return 0;
}
调试
- win+F10
- int 是整型的意思,main函数前面的int表示main函数调用返回一个整型值
- void main{}写法已经过时
- return 0;//返回0
- 库函数:C语言本身提供给我们的函数,如printf函数。所以需要‘打招呼’
- \#include<stdio.h>//包含一个叫stdio.h的头文件
- std-标准 standard input output
- 程序只能有一个主函数?
- 只有一个main函数,但可以包含其他函数
数据类型
- char //字符类型
- short //短整型,应为short int
- int //整形
- long //长整型
- long long //更长的整型
- float //单精度浮点数
- double //双精度浮点数
以上数据类型用来向内存申请空间,创建不同类型变量
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()//主函数//int main()
//{
// char ch='A';
//printf("%c\n",ch);//%c-打印的是字符格式的数据;
//("%c\n",ch)-打印字符的语法结构,意为以字符的形式打印ch
//int age=20;
//printf("%d\n",age);//%d-打印整形上十进制数据
//float f=5.0;
//printf("%f\n",f);
// double d = 3.14;
//printf("%lf\n",d);
//return 0;
//}
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/8
printf("%d\n", sizeof(long long));//8
printf("%d\n", sizeof(float));//4
printf("%d\n", sizeof(double));//8
return 0;
}
整型、短整型和长整型的区别?
为什么有那么多的数据类型?
- 减少内存消耗,所占内存空间不同
表示字符
- 'A' //用单引号表示字符
- 非字符不用单引号括起来,如20
保存字符
- 需要内存申请空间存储字符
- char ch ='A';//向内存申请了一个空间,空间名为ch
“%字母\n”的含义
- "%c\n",打印字符;
- "%d\n",打印整形上十进制数据
- "%f\n",打印浮点型,也就是小数
- "%p\n",以地址的形式打印
- "%x\n",打印16进制数字
计算占用内存空间大小
- printf("%d\n", sizeof(char);,sizeof,什么的大小
- 1,2,4,4,8,4,8,字节
C语言有没有字符串
计算机中的单位
- bit-比特位
- 最小的空间,只能存储0或1
- byte-字节
- 空间等于8个比特位,如01001010
- Kb
- Mb
- Gb
- Tb
- Pb
之后的都是1024进制
十进制计算
- 123=1\*102+2\*101+3\*100
二进制转换十进制
- 010=0\*22+1\*21+0\*20=2
2byte = 16bit = 216-1
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()//主函数//int main()
int main()
{
short age = 20;//向内存申请2个字节=16bit位,来存放20
float weight = 95.6f;//95.6默认是double类型,向内存申请4个字节,存放小数
return 0;
}
C语言标准规定
- sizeof(long)≥sizeof(int)
变量、常量
定义变量的方法
- int age = 150;
- flaot weight = 45.5f;
- char ch = 'w';
变量的分类
- 局部变量
- 全局变量
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()//主函数//int main()
int num2 = 20;//全局变量-定义在代码块({})之外的变量
int main()
{
int num1 = 10;//局部变量-定义在代码块({})之内的变量
return 0;
}
int main()
{
{
int a = 10;
}
printf("%\n",a);//此时无法打印a的值,因为a是局部变量
return 0;
}
全局变量和局部变量的名称可以一样
- 名称相同时,局部变量优先
- 建议名称不要相同
变量的使用
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()//主函数//int main()
int main()
{
//计算两个数的和
int num1 = 0;
int num2 = 0;
//输入数据-使用输入函数-scanf()
scanf_s("%d%d",&num1,&num2);//2个%d表示要输入2个整型;&表示取地址符号
int sum = 0;
sum = num1 + num2;
printf("sum = %d\n", sum);//sum = 表示输出时数字前面会有sum =
return 0;
}
&表示取地址
C语言语法规定,变量要定义在当前代码块的最前面
变量的作用域和生命周期
作用域
- 作用域(scope),程序设计概念,通常来说。一段代码中的所用到的名字并不总是有效/可用的
- 而限定这个名字的可用性的代码范围就是这个名字的作用域
- 例如,局部变量只有在其所在的大括号里面可以使用。这个大括号则是此局部变量的作用域
- 局部变量的作用域时变量所在的局部范围
- 全局变量的作用域是整个工程
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()//主函数//int main()
int main()
{
//声明 extern 外部符号
extern int g_val;
printf("g_val = %d\n",g_val);//g_val已在另一同源文件下的程序中定义为全局变量
//显示g_val为未声明的标识符
return 0;
}
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期:整个程序的生命周期。