linux c 中关于变量的问题 其实很复杂,下面我们就详细了解一下。
int a
char b
char c[2]
char *p=NULL
struct d
{
int d_1;
int d_2;
struct
{
int d_3;
int d_4;
};
struct d_5
{
int d_6;
};
}test_1;
enum test_2
{
D_T1,
D_T2,
D_T3
};
这里我们讲一下 数组变量名 他是一个常量指针 所以不能直接用用数组赋值,但是结构体变量可以。 这就是 数组间不能直接赋值
的原因:而结构体之间可以赋值。
数组名的地址就是数组的第一个变量的地址 结构体也一样。
再结构体中在定义其他结构体如果你不想通过结构体名去访问 可以直接省调结构体名。
struct test_q
{
int q1;
struct test_q1
{
int q2;
}test_qq;
struct
{
int q3; // 这种定义比变量名不能和 结构体的其他变量冲突
}
}test;
在访问时 test.q3 是合法的,但是tests.q2 就是非法的。