C 未定义数组的默认地址是否始终有效?
在我的系统中,未定义的指针的默认值为0x00000000C 未定义数组的默认地址是否始终有效?,c,arrays,pointers,undefined,memory-address,C,Arrays,Pointers,Undefined,Memory Address,在我的系统中,未定义的指针的默认值为0x00000000 void Demo() { char cData; char *pExamplePtr; char pExampleArray[4]; &cData <--- Address is 0x12345678 pExamplePtr <--- Value of pointer is 0x00000000 pExampleArray[0] <--- Address is
void Demo()
{
char cData;
char *pExamplePtr;
char pExampleArray[4];
&cData <--- Address is 0x12345678
pExamplePtr <--- Value of pointer is 0x00000000
pExampleArray[0] <--- Address is ???
}
void Demo()
{
字符cData;
char*pexamptr;
char-pExampleArray[4];
&cData
pExamplePtr
未初始化,因此它不一定指向0
pExampleArray
是一个数组,而不是指针,因此它也不会“指向”任何地方。如果在表达式中使用pExampleArray
,它将衰减为指向其第一个元素的指针-相当于&pExampleArray[0]
pExamplePtr
未初始化,因此它不一定指向0
pExampleArray
是一个数组,而不是指针,因此它也不会“指向”任何地方。如果在表达式中使用pExampleArray
,它将衰减为指向其第一个元素的指针-相当于&pExampleArray[0]
下面声明的pExampleArray
对象的地址:
char pExampleArray[4];
char *pExamplePtr;
是&pExampleArray
,它是一个有效地址
下面声明的pexampletr
对象的地址:
char pExampleArray[4];
char *pExamplePtr;
是&pExamplePtr
,它是一个有效地址,不同于NULL
。您似乎混淆了指针值,它是pExamplePtr
,在初始化或赋值之前不确定,指针对象的地址也不确定。下面声明的pExampleArray
对象的地址:
char pExampleArray[4];
char *pExamplePtr;
是&pExampleArray
,它是一个有效地址
下面声明的pexampletr
对象的地址:
char pExampleArray[4];
char *pExamplePtr;
是&pexampletr
,它是一个有效地址,不同于NULL
。您似乎混淆了指针值,它是pexampletr
,在初始化或赋值之前是不确定的,指针对象的地址也是不确定的。指针pexampletr确实有一个有效地址。可能是您的意思比如说,它没有指向任何东西,因此是0x00000000,但事实并非如此
同样关于pExampleArray[4]
,这是一个数组,不是指针,它确实有一个有效的地址,就像第一个变量一样。指针pExamplePtr确实有一个有效的地址。也许你想说的是,它没有指向任何东西,因此没有指向0x00000000,但事实并非如此
同样关于pExampleArray[4]
,这是一个数组,不是指针,它确实有一个有效的地址,就像你的第一个变量一样。这就是我想要说的。这就是我想要的答案。谢谢。这就是我想要说的。这就是我想要的答案。谢谢。