typedef

在变量声明中,declarators 中的 identifiers 是用来给 variables 命名的;而当 typedef 作为 base type 的一部份后,这个 identifiers 是给 这个 type 命名的。

typedef double db, *pdb;    // db is a synonym for double, p for double*
typedef int int_arr[4];

base type: typedef long long
declarators: db, *pdb

Attention

typedef char *pstring; 
const pstring cstr = 0;   // cstr is a constant pointer to char
const pstring *ps;        // ps is a pointer to a constant pointer to char

不要理解成单纯成 replace the alias with its corresponding type

Here base type is a pointer.
If we just replace, the base type is char and * is a modifier.

using

⭐️ new standard alias declaration.

using db = double;
using int_arr = int[4];