====== 极度简化的C/C++教程 ======
1. 变量与变量类型
变量定义的方式: <类型> <变量名称>;
<类型> <变量名称> = <数值>;
eg. int a = 1;
变量类型:
整型: int 2 字节 0 - 65535
长整形: long
字符型: char 1 字节 0 - 255
浮点型: float
sizeof(long);
变量修饰:
无符号: unsigned
unsigned int a = 0;
静态: static
-----------------------------------------------------------
常量定义方式: const <类型> <常量名称> = <数值>;
宏定义: #define <宏名称> <宏值>
pinMode(3, OUTPUT);
#define PO(x) pinMode(x, OUTPUT)
#define PI(x) pinMode(x, INPUT)
#include
头文件
#ifndef MAIN_H
#define MAIN_H
声明各种
#endif
a.c
int aaa = 1;
b.c
extern int aaa;
printf(aaa);
-----------------------------------------------------------
数组: <类型> <变量名称>[n];
<类型> <变量名称>[n] = {v1,v2,...v_n};
int array[10] = {0};
a = array[10]; X
-----------------------------------------------------------
字符串: C本身并没有字符串这个类型
字符数组来表示字符串
char str[] = "Your String";
str = "adlhasdfhkl";X
//特别注意: 只有在初始化的时候可以用=赋值字符串
//其他的时候,需要用strcpy函数来复制字符串
-----------------------------------------------------------
变量的赋值: =
运算:+ — * / %
取模
逻辑运算:|| && !
或 与 非
unsigned char
==
!=
>
<
>=
<=
位运算: | & ^ ~ >> <<
或 与 异或 非 右移 左移
char 8 bit
7 6 5 4 3 2 1 0
1 0 1 0 1 1 1 0
| 0 0 0 1 0 0 0 0
1 1 0 1 1 1 1 1
& 1 0 0 0 1 1 1 0
~ 0 1 0 1 0 0 0 1
>>1 0 1 0 1 0 1 1 1
改变优先级:()
-----------------------------------------------------------
----
2. 面向过程的程序的三种结构
-----------------------------------------------------------
顺序执行
-----------------------------------------------------------
语句1;
语句2;
语句3;
...
-----------------------------------------------------------
选择执行
-----------------------------------------------------------
if 语句系列
if (条件)
{
语句块1;
}
else
{
语句块2;
}
if (条件)
{
语句块1;
}
if (条件1)
{
语句块1;
}
else if (条件2)
{
语句块2;
}
else
{
语句块3;
}
switch语句:
switch (n)
{
case 1:
语句块1;
//break;
case 2:
语句快2;
break;
...
default:
break;
}
-----------------------------------------------------------
循环执行
-----------------------------------------------------------
for 循环
for (循环变量初始化; 循环条件; 循环变量操作)
{
语句块;
}
eg.
for (i = 0; i < 10; i++)
{
}
-----------------------------------------------------------
while循环系列
while (条件) //条件满足继续循环
{
语句块;
}
for(;;)
{
}
while(1)
{
}
a = 3;
do
{
语句1;
语句2;
a--;
}while(a > 1); //条件满足继续循环
----
3. 函数的概念
意义: 和数学上的函数非常相似 y = f(x1, x2, ... xn)
定义: <返回值类型> <函数名称> (<参数类型1> <参数1>...)
//这里的参数都是形参,传递的只是数值,不是变量本身
//想修改变量本身?目前先考虑全局变量
//更好的办法以后再讲
void
eg.
int function_not(int x)
{
if (x == 0)
{
x = 1;
return 1;
}
else
{
return 0;
}
}
作用域:
一层{}就是一个作用域
函数之外的层是全局层
内层可以操作外层,反之不可以
外层也有的情况下,内层依然可以在定义一次,
定以后就不再影响外层
再谈静态变量
int call_num()
{
static int count_num = 0;
return ++count_num;
}
-----------------------------------------------------------
----
4. 关于C++
-----------------------------------------------------------
只说一点:
. : 点运算,调用对象的属(bian)性(liang)或者方(han)法(shu)
Serial.begin(9600);
Serial.print("Good");