您的位置 首页 > 腾讯云社区

C语言基础01--初见C语言---徐焱

C语言基础--初见C语言

常见函数:

默认情况下,main函数是C语言的起点

printf()函数是格式化输出函数 (来自stdio.h)

单行注释:/ 单行内容 /

多行注释:/* 多行内容 */

使用VS2015创建项目:

1. 新建项目

2. 依次选择vc++ ,win32 ,win32控制台程序

3.随便写个项目名称

4. 应用程序向导里选择空项目,其他默认

5. 从源文件添加新建项,创建.c文件

第一个程序:

#include<stdio.h> int main() { printf("hello world!n"); return 0; }

程序分析

vs2015反汇编代码如下

#include<stdio.h> int main() { ;前面这块用于保障程序稳定性,把栈抬高,然后可以随便弄,弄完再把栈还原,再把寄存器的值还原;将ebp存起来,然后把栈抬高0C0H位 00C41760 push ebp 00C41761 mov ebp,esp 00C41763 sub esp,0C0h ;把ebx,esi,edi入栈 00C41769 push ebx 00C4176A push esi 00C4176B push edi ;把栈抬高的位置放到edi,然后从edi刷CCCCCCCCh 00C4176C lea edi,[ebp-0C0h] 00C41772 mov ecx,30h 00C41777 mov eax,0CCCCCCCCh 00C4177C rep stos dword ptr es:[ed;这里是直接把字符串push进去,然后调用printf,然后平栈 printf("hello world!n"); 00C4177E push offset string "hello world!n" (0C46BD0h) 00C41783 call _printf (0C41316h) 00C41788 add esp,4 return 0; ;等价于eax清零,比mov eax ,0效率高 00C4178B xor eax,eax } ;把edi,esi,ebx取出来 00C4178D pop edi 00C4178E pop esi 00C4178F pop ebx ;把栈放回去 00C41790 add esp,0C0h ;比较一下栈是否还在原来的位置 00C41796 cmp ebp,esp 00C41798 call __RTC_CheckEsp (0C4110Eh) ;还原esp和ebp 00C4179D mov esp,ebp 00C4179F pop ebp ;函数执行结束 00C417A0 ret

先把栈抬高,清空,用完再还原,可以实现不影响以前的栈

C语言关键字:

C语言保留标识符:

1. 下划线开始的标识符

2. 标准库函数名

C语言数据类型:

#include<stdio.h> #include<stdbool.h> //C99之前没有布尔类型,要用需要通过typedef的方式自己构造 int main(){ //int家族 short num0; //2字节 int num1; //4字节 long num2; //8字节,大部分情况下 long = int 都是4字节 long long num3; unsigned short num4; // 无符号短整型 unsigned int num5; unsigned long num6; //字符 char ctmp = 'A'; //此处需要用单引号,双引号是字符串 //浮点型,存小数,也支持科学技术法 float f1;//32位 double f2;//64位 long double f3;//128位 //bool bool ff = true;//1 bool ft = false;//0 //指针 char * pch; //union联合体 //struct结构体 //enum枚举 return 0; }

C语言输入输出函数:

输入函数:scanf("%?",temp);

输出函数:printf("%?",temp);

实例:输入输出字符串

#include<stdio.h> int main() { int len = 0; char str1[20]; scanf("%s", str1); len = strlen(str1); printf("hello world:%s,long:%d",str1,len); return 0; }

默认情况下scanf被禁用了,因为存在安全问题,需要包含一个宏才能用:

1. 项目--属性--C/C++--预处理器--编辑

2. 把报错里说的宏复制进去

C语言命名规则:

由字母,数字,下划线组成

只能以字符和下划线开头,不能用数字开头

匈牙利命名法:变量名前+属性+类型

下划线划分

大驼峰命名:所有单词首字母大写

小驼峰命名:第一个单词首字母小写,其他首字母大写

C语言运算符:

算数运算符

关系运算符

逻辑运算符

位运算符

赋值运算符

其他运算符

运算符优先级

https://baike.baidu.com/item/%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BC%98%E5%85%88%E 7%BA%A7/4752611#3 ---来自腾讯云社区的---徐焱

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: