为您找到"
有定义int x=2,*p=&x;*q=p,一下赋值语句错误的是
"相关结果约100,000,000个
p=*q是把q指针所指向地址里存放的数值赋给p指针指向的地址,简单说就是把q指向的变量里的值赋给p指针指向的变量 P= &Q 是错的除非是在定义的时候可以。int *p=&q;p=q啥也不是。
p=&a//int *p,p是一个指向int类型的指针,而&a表示的是指向整个数组的指针(取一个数组名得地址所产生的是一个指向数组的指针)。p是int类型的指针,而&a是指向数组的指针,类型不匹配,所以式子是错误的。要想得到正确的式子的话,可以这样 int(*q)[5]=&a//这样的话q是一个指向拥有五个...
int *p =a+5,/*数组名代表的是数组的首地址,既将a向后移五个单位,变成了a[5],那么p指向的是[5]在内存中的地址*/ q=p; // 因为前面是逗号,这里的q指向的就是a[5]在内存中的地址 q=*(p+5); /* 将p指针向后移动五个单位.这样p指向的是a[10],a[10]的值赋值给p指向...
int *p=&a[2]; // 定义一个int型指针变量,并指向a[2]所在的内存单元 printf("%x\n", p); // 输出指针p的内存地址,结果为0x2cfb28 p--=0; // 将内存地址为0x2cfb28的内存单元赋值为0(即a[2]=0),之后内存地址减4(因为一个int类型占4个存储单元)printf("%x\n", p)...
int a=5, *p, *q=&a;这个语句定义了 a 为整型变量,p 和 q 是整型指针,a 存储了5,q存储了a的地址;p=q*这个有错,首先p没有初始化就开始用了,我们不清楚p指向了内存中哪个位置,这是非常危险的,其次,q*应该为*p,用来取a=5这个值。* 运算符作为单目运算时在变量前。
2.*p=a的意思:将a的值赋给p指针指向的地址的值;3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是指针,可以理解为所指向的值的地址,*p就是取p指针指向的地址的...
答案是1,因为P也是一个一维指针,所以根据类型匹配原理只能对应一维a[i]而不能对应一个二维地址,否则需要强制转换,2,q[i]其实也相当于一个int类型指针所以可以对应a[i]3,p是一维指针所以可以对应a[i]一维数组 4,&a[2][1]是a二维数组的第三维第二个元素的地址。
语法可以,因为p是指针类型,就是整型数值,用十六进制赋值是对的,但是这样赋值是危险的,那段地址很可能是不确定值的地址,如果对p进行取值操作,将会出现非法操作 C.*q=*p;等同于a=i;是正确的,a=1.000000 D.*p=*q;是取q所指变量的值放在p所指的存储单元 是错误的,应该是 复制q所指变量的值...
二、强调类型不同 p是一个int’这里*和p绑在了一起——这就是C的风格,这种风格强调的是语法。而一个典型的C++程序员会写“int*p”,并告诉你“p是一个指向int的指针,p的类型是int*”。这种风格强调的是类型。三、用法不同 int* p, p1;// probable error: p1 is not an int*这里,把*...
这个&不能去掉,这里的a[3]相当于你定义了一个指针变量q,用 *q 取q指向内存的值。a[3]是一个整型数值(4字节,不考虑特殊),p是指针变量(1字节)。你可以用强制转换,但运行是通不过的。看代码吧(希望对你有帮助)include <stdio.h> void main(){ int a[4] = {1, 2, 3, 4};int ...