C++11 如何进行打字及;取消引用在这里有效吗? #包括 int main(){ INTA、b、c; char*p=0; int*q=0; 双*r=0; 不能取消对p、q、r、p+1、q+1、r+1或u+1中任何一个的引用,因为这些指针都没有指向正确类型的对象

C++11 如何进行打字及;取消引用在这里有效吗? #包括 int main(){ INTA、b、c; char*p=0; int*q=0; 双*r=0; 不能取消对p、q、r、p+1、q+1、r+1或u+1中任何一个的引用,因为这些指针都没有指向正确类型的对象,c++11,pointers,null,type-conversion,C++11,Pointers,Null,Type Conversion,您可以添加到指针,以获得不同的指针值。这仅针对位于同一数组中的结果定义,加上“结束后一个”指针值(将指向单个对象的指针视为长度为1的数组)。您还可以将指针转换为整数类型,以获取实现定义的值。执行这些操作不涉及取消对指针的引用 添加到空指针也是未定义的行为,因为空指针不指向对象,所以没有任何东西可以“超过末尾” #include<stdio.h> int main(){ int a, b, c; char *p = 0; int *q = 0; doub

您可以添加到指针,以获得不同的指针值。这仅针对位于同一数组中的结果定义,加上“结束后一个”指针值(将指向单个对象的指针视为长度为1的数组)。您还可以将指针转换为整数类型,以获取实现定义的值。执行这些操作不涉及取消对指针的引用

添加到空指针也是未定义的行为,因为空指针不指向对象,所以没有任何东西可以“超过末尾”

#include<stdio.h>
int main(){
    int a, b, c;
    char *p = 0;
    int *q = 0;
    double *r = 0;
    cout<<(int)(p + 1);    // printing 1 char size
    cout<<(int)(q + 1);    // printing 4
    cout<<(int)(r + 1);    // printing 8

    int y = 9;
    int *u = &y;
    cout<<(int)(u+1);       //printing 7208688

   cout<<*(p+1);            //not able to dereferance

   }