VB\C\C++中的变量初始化
int i1;
*int pi1;
char s1[10];
* char ps1;
struct {
int i1;
*int pi1;
}u1,*pu1;
main(){
int i2;
*int pi2;
char s2[10];
* char ps2;
struct {
int i2;
*int pi2;
}u1,*pu2;
}
这些变量哪些被赋予了默认值,哪些是不确定的
i1;
pi1;
*pi1
s1[1];
ps1;
u1.i1;
u1.pi1;
*u1.pi1;//这个是这么写吗,取pi1中地址,所保存的整数值
pu1->pi1;
i2;
pi2;
*pi2
s2[1];
ps2;
u2.i2;
u2.pi2;
u2.*pi;//还是这么写
pu2->pi2;
问题点数:20、回复次数:5Top
1 楼66766(毁人不倦)回复于 2005-04-26 22:00:51 得分 0
顶一下Top
2 楼llmsn("若虚"即"虚怀若谷"!!!)回复于 2005-04-26 23:51:16 得分 5
内置类型int ,float 等都有默认值的.但指针的话一般都没有默认值要指定初值,要不不安全.Top
3 楼Flood1984(峰子)回复于 2005-04-27 08:46:51 得分 5
除了人为的初始化外,
会被系统自动初始化的有2种:
一是全局变量,一是静态变量。Top
4 楼useresu(俗人)(灌水是我无言的抗议)回复于 2005-04-27 09:10:18 得分 5
指针一定要赋初值的,
好的风格是
无论指针是全局或局部,
都要给他赋初值,
要不是一时没有初值可赋,
也要指向null,
c语言没有null的话,
#define null 0Top
5 楼useresu(俗人)(灌水是我无言的抗议)回复于 2005-04-27 09:13:27 得分 5
全局和静态的变量会被默认初始化为0,
但是这是c的标准,
c++中好的风格还是要赋初值的.(即使是全局变量)
个人以为这些C语言的特性不用仔细去抠,
你只要使用好的编程风格去给每个变量一个初值,
就不会出现错误的.
个人意见,不对之处大家指正Top




