指令
#define _CRT_SECURE_NO_WARNINGS //保障scanf函数可能失常运行#include <stdio.h> //函数printf应用#include <string.h> //函数strlen应用
关键词
getchar() while(1) char short int long long long float double scanfprintf extern const arr[](数组)strlen
模板
//编写代码的文件#include <stdio.h> //编译预处理指令//main函数是程序的入口//main函数有且只有一个int main() //定义主函数{ // 函数开始的标记 printf("hello world"); //输入所指定的一行信息 //避免程序闪退,咱们要观看运行后果 // getchar(); //获取一个字符,不输出就会始终期待 //或 // while(1); //通过死循环来卡住程序,避免闪退 return 0; //函数执行结束时返回函数值0} //函数完结的标记
数据类型
char //字符数据类型short //短整型int //整形long //长整形long long //更长的整形float //单精度浮点数double //双精度浮点数
数据类型所占内存空间的大小
{ printf("%d\n", sizeof(char); //1 printf("%d\n", sizeof(short); //2 printf("%d\n", sizeof(int); //4 printf("%d\n", sizeof(long); //4 printf("%d\n", sizeof(long long); //8 printf("%d\n", sizeof(float); //4 printf("%d\n", sizeof(double); //8 return 0; //完结}
计算机中的单位
bit(比特位)-->byte(字节)-->kb-->mb-->gb-->tb-->pb1byte = 8bit1kb = 1024byte1mb = 1024kb 1gb = 1024mb1tb = 1024gb1pb = 1024tb
类型的应用
{ //类型 变量 = 数据 char = 'w'; int age = 20; return 0; //完结}
全局变量和局部变量
#include <stdio.h> //预处理指令int num = 10; //全局变量int main() //主函数{ int num = 10; //局部变量 printf("num=%d\n", num); //全局变量名与局部变量名雷同时,部分优先 return 0; //完结}
全局变量 - {}内部定义的变量
局部变量 - {}外部定义的变量
{}内不能定义雷同的变量名
不倡议全局变量名与局部变量名一样
变量的应用
{ //初始化 int num_1 = 0; int num_2 = 0; //输出函数 scanf("%d %d", &num_1, &num_2); //求和 int sum = num_1 + num_2; //输入函数 printf("%d\n", sum); return 0; //完结}
在源文件的第一行放
#define _CRT_SECURE_NO_WARNINGS //保障scanf函数可能失常运行
在VS工程中创立新的.c或者.cpp文件的时候,都是拷贝newc++file.cpp这个文件的!在此文件增加的数据,创立新源文件都会存在!
办法:在VS的装置门路下有一个文件 newc++file.cpp 的文件,通过everything搜寻查找到并关上门路,复制此文件到桌面批改,批改后替换原文件
变量的作用域
局部变量
局部变量的作用域是:变量所在的部分范畴
全局变量
全局变量的作用域是:整个工程
申明来自内部的符号(都是源文件)extern int num;
变量生命周期
局部变量
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期完结
全局变量
全副变量的生命周期是:整个程序的生命周期
常量的分类
#define _CRT_SECURE_NO_WARNINGS //保障scanf函数可能失常运行#include <stdio.h> //预处理指令//字面常量//const润饰的常变量//define定义的标识符常量//枚举常量//define定义的标识符常量(在这里定义)#define MAX 100#define STR "abcdef"//枚举常量(在这里定义)enum Color{ //这三个就是枚举常量 RED, GREEN, BLUE};enum Sex{ //这三个就是枚举常量 MALE, FEMALE, SECRET};int main() //主函数{ //int num = 10; //字面常量 //const润饰的num,实质是变量,然而不能间接批改,有常量的属性 const int num = 10; //const润饰的常变量 //num = 20; //err,有const润饰,num不能被批改 printf("%d\n", num); //10 //define定义的标识符常量(在这里应用) printf("%d\n", MAX); //100 int num_1 = MAX; printf("%d\n", num_1); //100 printf("%s\n", STR); //abcdef //枚举常量(在这里应用) //三原色 Red Green Blue //创立一个变量 int num_2 = 10; enum Color num_3 = RED; return 0; //完结}
字符串
% c 打印字符 % s 打印字符串 % d 打印整型 % f 打印float类型的数据 % lf 打印double类型的数据 % zu 打印sizeof的返回值
#define _CRT_SECURE_NO_WARNINGS //保障scanf函数可能失常运行#include <stdio.h> //函数printf应用#include <string.h> //函数strlen应用int main() //主函数{ //char 字符类型 单引号是字符,双引号是字符串 char num = 'w'; //字符 //"abcdef" 字符串 arr[] 数组 //字符串能够间接应用printf()打印 //晓得或者限度字符串长度,行将数值填写于[]中 //不晓得则为空,依据字符串长度主动调整 //查看值:点击F10(逐过程), 晓得return0 --> 调试 --> 窗口 --> 监督 --> 1,2,3,4都能够,查看后果arr会多一个值:'\0' // \0示意字符串完结,并不在字符串内容中 char arr[ ] = "abcdef"; //a b c d e f \0 char arr_1[ ] = { 'a', 'b', 'c', 'd', 'e', 'f'}; //a b c d e f char arr_2[ ] = { 'a', 'b', 'c', 'd', 'e', 'f','\0'}; //a b c d e f \0 //字符串只有遇到\0才会完结(\0的重要性一) printf("%s\n", arr); //abcdef //printf("%s\n", arr_1); //abcdef烫烫烫烫烫abcdef printf("%s\n", arr_2); //abcdef //求字符串长度的一个函数 头文件 string.h int len = strlen("abc"); printf("%d\n", len); //3 //(\0的重要性二) printf("%d\n", strlen(arr)); //6 printf("%d\n", strlen(arr_1)); //22 printf("%d\n", strlen(arr_2)); //6 return 0; //完结}
转义字符
转义字符在字符串中仅示意一个长度,即一个字符
\ ? 在书写间断多个问号时应用,避免他们被解析成三字母词 \' 用于示意字符常量' \" 用于示意一个字符串外部的双引号 \\ 用于示意一个反斜杠,避免它被解释为一个转义序列符 \a 正告字符,蜂鸣 \b 退格符 \f 进纸符 \n 换行 \0 字符串终止 \r 回车 \t 程度制表符 \v 垂直制表符 \ddd ddd示意1 - 3个八进制的数字。如: \130(八进制)->X(ASCII值) \xdd dd示意2个十六进制数字。如 : \x -> 300
ASCII编码
{ //\ 本义符 转变了字符原来的意思 //\? ??) => ] 三字母词 当初编译器极少有 //printf("%s\n", "(are you ok\?\?)"); //(are you ok??) //printf("%s\n", "(are you ok??)"); //(are you ok] //\' //printf("%c\n", '\''); //' //printf("%c\n", 'w''); //err //\" //printf("%s\n","ab\"c"); //ab"c //printf("%c\n", "ab"c"); //err //\\ //printf("ab\\0c"); //ab\0c //printf("ab\0c"); //ab //\a //printf("\a"); //会有零碎提示音 //\b,\f和\v 没有什么用 //\n 换行 //printf("abc\n"); //abc //printf("abcn"); //abcn //\0 只取\0以前的字符串 //printf("abc\0def"); //abc //\r 只取\r当前的字符串 //printf("abc\rdef"); //def //\t 从结尾到第8位 //printf("ab\\tcdef\n"); //ab\tcdef //printf("ab\tcdef"); //ab def //\ddd //八进制的130 //printf("%c\n", '\130'); //X //\xdd //先将16进制的30转化为十进制,再对照ASCII表 printf("%c\n", '\x30'); //0 return 0; //完结}
正文
{ //c语言的正文格调(嵌套正文时有缺点) /* prinf("hello world") */ //c++的正文格调(倡议) //这段代码不要了就正文(第一种正文,即不要运行) //printf("%s\n", "NO!") //创立指针变量p,并赋值为NULL(第二种正文,即解释此段代码的意思) int* p = NULL; return 0; //完结}