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 ---来自腾讯云社区的---徐焱
微信扫一扫打赏
支付宝扫一扫打赏