注释:单行注释//,多行注释/*...........*/。
变量声明:变量类型 变量名 =变量值;
字符定义:char ch='A'; 宽字符定义:wchar_t ch=L'A';宽字符前面加上L。
c语言中没有字符串类型,存储字符串需要借助数组和指针。c中没有直接求数组长度的函数,需要使用sizeof函数来计算。
字符串换行书写,并非使用 换行,当一行内的字符串过长时会影响阅读,使用 可以在下行继续写还是表示在当前行。

1 printf("这是一个很长的字符串 2 这里是继续第一行后面的字符串");
标识符:字母,数字,下划线组成。数字不能开头,也不能是关键字。
c语言区别大小写。.c是C语言文件和.cpp是C++文件。
函数格式:返回值 函数名(参数){ }
.cpp文件结构:变量,函数。表达式不能直接写在文件下,需要写在函数中。
在一个.cpp文件中调用另一个.cpp文件需要先用#include包含.cpp文件。
然而一般A.cpp文件会对应一个A.h文件;A.h文件里面存放A.cpp文件所有的函数声明和全局变量。B.cpp文件需要使用A.cpp里面函数时,只需要包含A.h文件就可以使用A.cpp文件里面的函数。
在#include包含头文件时,<>一般是系统标准库,""是自定义的文件头。#include<stdio.h> #include"A.h"
函数可以互相调用,但不能互相嵌套,也就是一个函数里面不能写另一个函数。
静态变量static全部变量默认就是静态变量,局部静态变量用static 关键字声明,静态变量从程序开始到结束一直都会存在,即使局部静态变量在作用域外不能访问时,也是存在的,没有被销毁。局部静态变量只会被初始化一次。
在B文件使用A文件的全局变量使用关键字,extern声明该变量表示这个变量从另一个文件继承过来。
#表示预处理,#include表示文件包含,#define宏定义。

#include<stdio.h> #include<windows.h> int main() { int a = 100; int b = 4; printf("%d",a/b); system("pause"); return 0; }
定义数组:

#include<stdio.h> #include<windows.h> int main() { int array1[5];//数组定义 array1[0] = 12; printf("数组下标为0的值:%d ",array1[0]); int array2[] = {1,2,3,4,5};//定义数组 int array_length = sizeof(array2) / sizeof(int); printf("数组下标为1的值:%d 数组长度:%d ",array2[1],array_length); int array3[10] = {1,2,3,4,5};//定义数组 int array_length1 = sizeof(array3) / sizeof(int); printf("长度:%d ",array_length1); for (int i = 0; i < array_length1;i++) { printf("%d ",array3[i]); } system("pause"); return 0; }
scanf输入函数用法:

#include<stdio.h> #include<windows.h> int main() { int a=0; scanf_s("%d",&a);//scanf用法:输入参数类型,存入的地址 printf("%d",a); system("pause"); return 0; }
2维数组

#include<stdio.h> #include<windows.h> int main() { //数组声明的各种演变,数组用花括号包含起来 int a[2][3] = { {1,2,3},{4,5,6} };//数组声明 int b[][2] = { 1,2,3,4,5,6 };//数组声明 int c[2][3] = { 1,2,3,4,5,6 };//数组声明 int d[2][3] = { {1},{2,3} };//数组声明 int e[2][3] = { 1,2,3 };//数组声明 system("pause"); return 0; }
函数调用规则:函数在调用之前定义的时候,不需要声明可以直接使用,在调用之后,需要先声明

#include<stdio.h> #include<windows.h> void fun2(); int a = 19; void fun1() { printf("这个函数在mian前面可以直接调用 "); } int main() { //函数在调用之前定义的时候,不需要声明可以直接使用,在调用之后,需要先声明 fun1(); fun2(); printf("%d",a); system("pause"); return 0; } void fun2() { printf("这个函数在main函数后面需要先声明 "); }
函数声明:返回值 函数名(参数类型 参数名.....);声明时候可以不写参数名只写参数类型:返回值 函数名(参数类型........);void fun1(int);。
自定义类型:使用typedef;typedef int INT把int类型改成自定义的INT类型;typedef int* PINT把整数指针类型定义成PINT;typedef不是定义一个全新的类型而是为已经存在的类型取个新名字。

#include<stdio.h> #include<windows.h> //typedef关键字常见用法 typedef struct MyStruct { int a; int b; }mystruct; int main() { mystruct mystruct1;//mystruct变成了结构体类型,mystruct1是这个结构体类型的变量 mystruct1.a = 10; mystruct1.b = 20; printf("%d------------%d ", mystruct1.a, mystruct1.b);//输出10---------20 system("pause"); return 0; }
system函数可以执行dos命令:system(命令字符串);需要包含头文件<stdlib.h>。
重载相同作用域,重写发生在继承关系里面。
函数参数可以有默认值:参数从右往左设置默认值,中间不能隔开。
引用就是为一个变量起把别名,语法: 类型 &引用名=变量名;int a=10;int &pride=a;引用定义时候必须初始化。
普通函数传参传递的是值(形参不能改变实参),引用传参传的是地址(形参可以改变实参)。引用传参函数定义:参数用&:int fun( int &num1 int &num2 ){ }。
C++作用域符号::
C++输入输出机制:cout和cin。需要包含头文件,并声明命名空间std。

#include<stdio.h> #include<windows.h> #include<iostream> using namespace std; int main() { int a; cin >> a; cout <<"输入一个数存入a,输出a变量的值-----:"<< a<<endl; system("pause"); return 0; }