- 1,变量三要素:类型、变量名称、变量值。类型、值、地址。
左值和右值的误解
L-value locator value 有特定位置的值(地址)
R-value read value 可读的值
大端和小端模式:
低字节数据存放低位地址为小端模式
低字节数据存放高位地址为大端模式
X86是小端模式
Arm是默认小端模式,可以设置为大端模式
- 2,const用法
const int n
int const n
int const *p // *p的值不能被改变
const int *p //
int *const p // P的值不能被改变
- 3,一维数组
a==&a[0]
*a==*(&a[0])==a[0]
a+i==&a[i]
*(a+i)==*(&a[i])==a[i]
- 4,二维数组
data == &data[0]
*data == *(&data[0]) == data[0]
data[0] == &data[0][0]
*(data[0]) == *(&data[0][0]) == data[0][0]
*data == &data[0][0
]data == &data[0] == &(&data[0][0])
**data == data[0][0]
int sum(int (*pDdata)[2], int size);
int data[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int total = sum(data, 3);
size_t numRows = sizeof(data) / sizeof(data[0]); // 行数
size_t numCols = sizeof(data[0]) / sizeof(data[0][0]); //列数
size_t n = sizeof(data) / sizeof(data[0][0]); // 元素个数
- 5,指针数组与函数指针
char * keyWord[5] = {"eagle", "cat", "and", "dog", "ball"};
typedef int (*PF)(int, int);