指针的逻辑运算例题 inta[5]={1,3,5,7,9},*p1=a,*p2=0;那么 p1,p2,为真,p2,p1&
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 12:28:33
指针的逻辑运算
例题 inta[5]={1,3,5,7,9},*p1=a,*p2=0;
那么 p1,p2,为真,p2,p1&&p2 为假.
请问此处p1,p2分别代表什么啊,还有为什么*p1=a是什么意思啊,不是p1=a是p1指向a[0]吗?他们有什么区别啊?
例题 inta[5]={1,3,5,7,9},*p1=a,*p2=0;
那么 p1,p2,为真,p2,p1&&p2 为假.
请问此处p1,p2分别代表什么啊,还有为什么*p1=a是什么意思啊,不是p1=a是p1指向a[0]吗?他们有什么区别啊?
p1是指向数组a的首地址的指针,p2为空指针.
因为p2为空指针,所以p2取反为真.(即!p2的值为真).p1不为空,所以不管他指向哪,都为真.
所以 p1,!p2, 为真,p2,p1&&p2 为假.
p1指向数组a的首地址,因为这里是在定义变量的同时赋值,所有可以int *p1=a;这里的*号表明这是一个指针变量,而非取值的那个*.
1.int p1;
p1=a;//因为2个都是指针,所以可以直接赋值.
2.int p1;
p1=&a[0];//&为取地址
以上的效果都跟int *p=a的效果是一样的,都是把p1指向a的地址,即a[0]的地址.
另外int *p=0;虽然没错,但是要写成int *p=NULL;避免把一般变量与指针变量弄混(NULL是一个宏,其值为0),这是一个好坏习惯的问题.
因为p2为空指针,所以p2取反为真.(即!p2的值为真).p1不为空,所以不管他指向哪,都为真.
所以 p1,!p2, 为真,p2,p1&&p2 为假.
p1指向数组a的首地址,因为这里是在定义变量的同时赋值,所有可以int *p1=a;这里的*号表明这是一个指针变量,而非取值的那个*.
1.int p1;
p1=a;//因为2个都是指针,所以可以直接赋值.
2.int p1;
p1=&a[0];//&为取地址
以上的效果都跟int *p=a的效果是一样的,都是把p1指向a的地址,即a[0]的地址.
另外int *p=0;虽然没错,但是要写成int *p=NULL;避免把一般变量与指针变量弄混(NULL是一个宏,其值为0),这是一个好坏习惯的问题.
指针的逻辑运算例题 inta[5]={1,3,5,7,9},*p1=a,*p2=0;那么 p1,p2,为真,p2,p1&
p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变
while(*p1) p1++; while(*p2) { *p1=*p2; p1++; p2++; } *p1=0;
#includevoid main(){int *p1,*p2,a[5]={1,3,5,7,9};for(p1=a;p1
p2->next=p1;p2=p1;
有指针变量p1,p2,p1="abc";p2="abc".strcat(p1,p2)如何理解
p1,p2,p3为质数,P1=5,5P2P3=5(5+P2+P3),则P2=?,P3=?p1,p2,p3为质数,P1=5
c语言:两个指向字符串的指针,*p1,*p2,请问while(*p1++=*p2++)是什么意思?
三阶实对称矩阵A特征值0,1,1,p1,p2是A的两不同特征向量,A(p1+p2)=p2,求Ax=p2的通解
已知点P1(-1,a),P2(3,6),且P1 P2的斜率k=2,则| P1 P2|=
p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的 .A.p2=*&p1; B.p2=**p1; C.
在线段AB上有两点P1、P2,其中P1分AB为AP1、P1B两部分,且AP1:P1B=5:7求P1、P2的距离