C语言学习笔记
1.C语言的32个关键字
32个关键字
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch sypedef unsigned union void volatile while
1.2.c语言的9种控制语句
if()~else~
for()~
while()~
do~while()
break
switch
goto
return
1.3 34种运算符
34种运算符
算数运算符:+ - * / % ++ --
关系运算符:< <= ==(两个数相等) > >= !=
逻辑运算符:! && ||
位运算符: << >> ~ | ` &
赋值运算符: = 及其扩展
条件运算符: ? :
逗号运算符:,
指针运算符: * &
求字节数: : sizeof
强制类型转换: (类型)
分量运算符 :. ->
下标运算符: []
其他 : ( )
c语言是面向过程的语言
1.3.1第一个c程序 helloworld
#include<stdio.h>
//导入一个文件 stdio.h std 是一个标准库 i input o output标准输入输出库 .h表示头文件
//<>表示导入系统文件 "" 表示导入自定义文件
int main()
{
//两个正斜杠表示注释 行注释 只能注释一行
/*
这是一个块注释
可以注释多行
注释内容不参与程序编译
*/
//int 数据类型 整型 如果出现在函数中 表示函数的返回值
//main 程序的主函数 程序有且只有一个主函数 ()里面表示函数的参数 函数的参数 可以有多个 如果有多个 中间用,分隔
//{}函数体 代码体 程序体
printf("hello world\n");
//\n是一个转义字符 表示换行
//printf 是stdio.h中系统提供的函数表示在标准输出设备中打印字符串
//""引起来的称之为字符串; 一条语句的结束
return 0;//(0表示返回值)
//return 如果出现在其他函数中表示函数结束 如果出现在main函数中表示 程序结束
//0表示函数的返回值 要和函数的返回值类型对应。
}
1.4 System 函数
#include <stdlib.h>
int main(void)
{
//cmd 命令 calc 计算器 notepad 记事本 mspaint 画图板 osk 软键盘
system("calc");
return 0;
}
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int value;
value=system(".exe文件路径");
//system 可以打开一个外部的应用程序 如果带路径 需要使用\\ 或者 /
printf("%d\n",value);
//%d是一个占位符 ,表示输出一个整型数据
return 0;
}
1.5C语言编译过程
1.5.1
c代码编译成可执行程序经过四步:
1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里不会检查语法。
cmd 命令: gcc -E 文件地址 -o 文件地址. i
2)编译:检查语法,将预处理后的文件编译成汇编文件
cmd 命令 :gcc -S .i文件地址 -o 文件地址.s
3)汇编:将汇编文件生成目标文件(二进制文件)
cmd 命令:gcc -c .s文件地址 -o 文件地址.o
4)链接:c语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终可执行的程序中去。
cmd 命令 :gcc .o 文件地址 -o 文件地址.exe。
常见代码问题:
1.编辑时异常 (会在预处理时提示)
2.编译时异常
3.运行时异常
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9t0SqCqq-1650786219380)(C:\Users\17155\AppData\Roaming\Typora\typora-user-images\image-20220421203200181.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u3OMSqqq-1650786219381)(C:\Users\17155\AppData\Roaming\Typora\typora-user-images\image-20220421203936898.png)]
#include <stdio.h>
//宏定义常量
#define MAX 100
int main()
{
printf("%d",100);
return 0;
}
1.6寄存器名字(了解)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e9GqlJrY-1650786219382)(C:\Users\17155\AppData\Roaming\Typora\typora-user-images\image-20220421205126525.png)]
1.7简单计算
#include <stdio.h>
int main(void)
{
//数据类型
int a =10;
int b =20;
int c=a + b;
printf("%d\n",c);
return 0;
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aDjb1snl-1650786219382)(C:\Users\17155\AppData\Roaming\Typora\typora-user-images\image-20220421205954028.png)]
#include <stido.h>
int main()
{
int a=10;
int b=20;
int c;
__asm
{
mov a,10
mov b,20
mov eax,a
add eax,b
mov c,eax
}
printf("%d",c);
return 0;
}
汇编语言 :
mov 移动
add 添加
push 压栈
pop 出栈
call 调用
eax 32 位寄存器
简单的加法计算 :
__asm
{
mov a,10
mov b,20
mov eax,a
add eax,b
mov c,eax
}
语言 :
mov 移动
add 添加
push 压栈
pop 出栈
call 调用
eax 32 位寄存器
简单的加法计算 :
__asm
{
mov a,10
mov b,20
mov eax,a
add eax,b
mov c,eax
}
C语言入门:关键字、控制语句、运算符及程序编译过程
183

被折叠的 条评论
为什么被折叠?



