(C/C++基础)结构体_初始化_赋值_定义_声明
2014-01-10 21:07
633 查看
首先介绍一下初始化、赋值、定义、声明这四个概念。
初始化:创建变量并给它赋初值。初始化和赋初值不同。初始化=带指定初始值的定义。一个程序中,一个变量只能初始化一次。如:int i=0;
赋值:擦除对象的当前值并用新值替代,在一个程序中,一个变量可以多次赋值。
定义:用来为变量分配内存空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。例:int i;(单纯定义) int i=0;(带指定初始值的定义)
声明:用来向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。可以通过使用extern关键字声明变量而不是定义它。例:extern int i;
代码1:初始化结构体全局变量,可以。
代码2:先定义结构体全局变量,再对其赋值,不可以。
注:全局空间中(函数体之外)只能执行定义和初始化,其他操作都不被允许。
代码3:在main中初始化结构体局部变量,可以。
代码4:在main中先定义结构体局部变量,再对其赋值,可以。
代码5:在main外先定义结构体全局变量,在main内对其赋值,可以。
初始化:创建变量并给它赋初值。初始化和赋初值不同。初始化=带指定初始值的定义。一个程序中,一个变量只能初始化一次。如:int i=0;
赋值:擦除对象的当前值并用新值替代,在一个程序中,一个变量可以多次赋值。
定义:用来为变量分配内存空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。例:int i;(单纯定义) int i=0;(带指定初始值的定义)
声明:用来向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。可以通过使用extern关键字声明变量而不是定义它。例:extern int i;
代码1:初始化结构体全局变量,可以。
#include"ds.h" /*定义结构体*/ typedef struct Pos{ int x; int y; }Pos; /*在main函数外初始化结构体全局变量*/ /*大括号只能在初始化结构体变量中使用,为结构体变量赋值哪怕是赋初值都只能对结构体中每个成员单独赋值*/ Pos Begin={1,1},End={8,8}; int main() { printf("%d,%d,%d,%d\n",Begin.x,Begin.y,End.x,End.y); return 0; }
代码2:先定义结构体全局变量,再对其赋值,不可以。
注:全局空间中(函数体之外)只能执行定义和初始化,其他操作都不被允许。
#include"ds.h" /*定义结构体*/ typedef struct Pos{ int x; int y; }Pos; /*在main函数外先定义结构体全局变量,再对其赋初值*/ Pos Begin,End; Begin.x=1; //赋值不允许出现在全局空间中。编译器会将它当做全局变量定义来处理,于是会报告缺少类型标识符 Begin.y=1; End.x=8; End.y=8; int main() { printf("%d,%d,%d,%d\n",Begin.x,Begin.y,End.x,End.y); return 0; }
代码3:在main中初始化结构体局部变量,可以。
#include"ds.h" /*定义结构体*/ typedef struct Pos{ int x; int y; }Pos; int main() { /*在main函数内初始化结构体局部变量*/ /*大括号只能在初始化中使用,赋值哪怕是赋初值都只能对结构体中每个成员单独赋值*/ Pos Begin={1,1},End={8,8}; printf("%d,%d,%d,%d\n",Begin.x,Begin.y,End.x,End.y); return 0; }
代码4:在main中先定义结构体局部变量,再对其赋值,可以。
#include"ds.h" /*定义结构体*/ typedef struct Pos{ int x; int y; }Pos; int main() { /*在main函数内先定义结构体局部变量,再对其赋初值*/ Pos Begin,End; Begin.x=1; Begin.y=1; End.x=8; End.y=8; printf("%d,%d,%d,%d\n",Begin.x,Begin.y,End.x,End.y); return 0; }
代码5:在main外先定义结构体全局变量,在main内对其赋值,可以。
#include"ds.h" /*定义结构体*/ typedef struct Pos{ int x; int y; }Pos; /*在main函数外定义结构体全局变量*/ /*在main函数中对其赋初值*/ Pos Begin,End; int main() { Begin.x=1; Begin.y=1; End.x=8; End.y=8; printf("%d,%d,%d,%d\n",Begin.x,Begin.y,End.x,End.y); return 0; }
相关文章推荐
- C++ 声明、定义、初始化、赋值
- 定义、声明、初始化、赋值 小记(C++)
- c++中的结构体:声明 定义 初始化
- 复习几个C++概念:声明与定义、传值与拷贝构造、初始化和赋值
- C++中的声明、定义、赋值和初始化
- C/C++ 之 结构体(1)定义和赋值
- 【Java】变量声明、定义、赋值与初始化区别
- cpp基础: c++ 定义与声明的区别
- C程序变量的声明、定义、初始化和赋值
- C++语言基础 例程 类的声明和对象的定义
- 浅析C++中结构体的定义、初始化和引用
- (总结)C++与java比较教程--7.1 声明和定义和初始化(待补充)
- 【转载】C++中结构体的声明和定义
- C语言声明,定义,赋值,初始化
- 【Struct(结构体)杂谈之二】名不正则言不顺---Struct(结构体)的声明、定义及初始化
- C/C++ 中变量的声明、定义、初始化的区别
- C++中结构体的声明和定义
- 【Struct(结构体)杂谈之二】名不正则言不顺---Struct(结构体)的声明、定义及初始化
- C++中结构体的声明和定义的用法
- 声明、定义、初始化、赋值的区别