本人是计科的专业,但是能力相当于新手,
所以下列笔记虽然我检查了几遍,但还是可能会有不对的地方,望指出
(你们这么多人,不要被我带跑偏了TVT)
1.初识C语言
什么是C语言
C语言是一种计算机语言
计算机语言是什么?
人和计算机交流的语言,C/C++/JAVA/python
语言的发展:低级语言———>高级语言(进化类比照相机发展史)
二进制语言
硬件-电-正电/负电
1 0
初识科学家要翻二进制手册
10100001 - ADD- 助记符-汇编语言
B语言
C语言-C++ ---进化到高级语言
C语言——>早期不是很成熟——>成熟——>流行
国际标准:ANSI C-89- ——C89/C90标准
C99/C11并不流行----不少的编译器不支持
常见的编译器Clang,GCC,WIN-TC,SUBLI
写C代码步骤
1.创建工程、新建项目,选中Visual C++——>选中空项目——>设置名称,存储位置
c代码
.c - 源文件
.h - 头文件(head文件最头部)
2.右键添加新建项,设置文件名为xxxx.c
3.写代码
#include<stdio.h> //包含一个叫stdio.h的文件
//std-标准 standard input output(标准输入输出)
int main() //主函数-程序的入口-main函数有且只有一个(在此地按住Fn+F10后会从此运行开
始)
//int是整数型的意思
//main前面的int表示main函数调用返回一个整型值(void main()这种是过时的写
法)
{
printf("hello\n"); //这里完成任务
//在屏幕上输出hello world
//函数-print function-printf-打印函数(输出显示)
//双引号内是显示的内容,斜杆n是换行
//库函数-C语言本身提供给我们使用的函数——是别人的东西——所以要打招呼——即#
include
return 0; //返回的意思=0
}
Ctrl+F5=直接运行
Fn+Ctrl+F5=执行过程显示
Fn+F10=坐标处开始运行一行
此时因为执行过快一闪而过
所以要右击工具栏里的项目名称(test-2-27)进入属性页
配置属性——链接器——系统——子系统,将其改为控制台
再次运行即可得到不灭的显示
数据类型
char //字符数据类型 %c
short/short int //短整型 %d
int //整型 %d
long //长整型 %d
long long //更长的整型 %d
float //单精度浮点数 %f
double //双精度浮点数(小数点更精确) %lf
%d——打印整型
%c——打印字符
%f——打印浮点数字--打小数(%.1f表示精确到小数点后一位 )
%p——以地址的形式打印
%x——打印16进制数据
%o——打印8进制数据
%s——打印字符串
字符类型使用方法
int main()
{
char ch=’A’ //字符需要用单引号‘’括起来,字符串用双引号“”
//为该字符向内存申请空间来存放——字符类型
printf("%c\n",ch); //%c--打印字符格式的数据(表示我以字符的形式来打印ch)
return 0;
}
整型使用方法
int main()
{
int age=20;
printf("%d",age); //%d--打印整型十进制数据
计算该字符所占内存
int main()
{
printf("%d\n",sizeof(char)); //sizeof表示谁谁的大小
//sizeof(char)表示字符型数据所占内存的大小
return 0;
}
char——>1字节
short——>2字节
Int——>4字节
long——>4/8字节
long long——>8字节
float——→4字节
double——→8字节
字节(计算机中的单位)
bit - 比特位
byte - 字节=8个比特位
kb=1024字节
mb(兆B)=1024kb
gb=1024mb
tb=1024gb
pb=1024tb
因为计算机是硬件,要靠通电的变化正电(1)负电(0)1个比特位仅能存放一个1或0,
只能遵循二进制原则(对比十进制计算学习,例:010=0*2^2+1*2^1+0*2^0)
所以细化这些类型是为了使用对应有限的类型减少内存使用量,合理节省优化程序大小。
C语言标准规定sizeof(long)>=sizeof(int)所以long对应4或8取决于平台
定义变量的方法
int age=150;
float weight=45.5f;
char ch=’w’;
类型+变量名 附一个值
变量的分类
- 局部变量
- 全局变量
例:
#include<stdio.h>
int num2=20; //全局变量-定义在代码块({})之外的变量
int main()
{
int num1=10; //局部变量-定义在代码块({})内部
return0;
}
注意:1.全局变量与局部变量的名字建议不要相同-容易产生误会,产生bug
2.当局部变量和全局变量的名字相同的时候,局部变量优先
下列代码在C语言中会显示错误,C++不会。
int main()
{
//计算2个数的和
int num1=0;
int num2=0;
//输入数据-使用输入函数scanf
scanf("%d%d",&num1,&num2); //取地址符号&
如果出错,认为scanf不安全则可能是vs中的SDL检查,此时右键单击工程文件——属性——c/c
++——SDL检查选项——否 或者用scanf_c
因为scanf是C语言提供的,而scanf_s不是标准C语言提供的,是VS编译器提供的,所以最好不
用这个,因为此时就不具备跨平台性、可移植性。
所以我们仍用scanf,但是在源文件第一行要加上#define _CRT_SECURE_NO_WARNINGS 1
意思是让警告全部 失效,define意思是重定义
VS显示不安全是因为,分配了5字节的空间但是用户输入了10字节,就会导致sccanf()读到10字
节
int sum=0; //C语言语法规定,变量要定义在当前代码的最前面
sum=num1+num2;
printf("sum=%d\n",sum);
return 0;
}
全局加入#define _CRT_SECURE_NO_WARNINGS 1方法
开始菜单中找其图标右击——单击属性——看快捷方式的目标中文件位置——在计算机中找到该文件单击——找到并打开VC——找到并打开vcprojectitems工程文件——找到并打开newc++file.cpp——在记事本中打开并粘贴#define _CRT_SECURE_NO_WARNINGS 1或在Notepad++中打开并粘贴#define _CRT_SECURE_NO_WARNINGS 1——保存(Ctrl+s)如果出现失败则按确定重新启动这个文件——自动退出后再重新点进去保存就可以了
下列代码在C语言与C++中都正确
int main()
{
//计算2个数的和
int num1=0;
int num2=0;
int sum=0; //C语言语法规定,变量要定义在当前代码的最前面
//输入数据-使用输入函数scanf
scanf("%d%d",&num1,&num2); //取地址符号&
sum=num1+num2;
printf("sum=%d\n",sum);
return 0;
}
变量的作用域和生命周期
作用域
程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程(但跨文件使用工程时要声明)。
第一个文件:
int main()
int a=2021;
第二个文件:
int main()
{
extern int a; //需要声明标志符,声明a是由extern外部符号来的
printf("a=%d\n",a);
return 0;
}
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期
此学习笔记由在哔哩哔哩动画观看《c语言编程 C语言入门 c语言(C语言程序设计教程 c语言视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言》学习总结
(这个不是鹏哥的号,可以从评论区找到鹏哥B站号链接)B站链接https://www.bilibili.com/video/BV1q54y1q79w