*(p=&n)=*pk*(*pm) #includemain(){int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\n",n);}上面是C语言源程序现在*pk=&k即为*pk代表的是k的地址*pm=&m代表的是m变量的地址在运算*pk*(*pm)时,不就是k和m的地址

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 00:36:07

*(p=&n)=*pk*(*pm) #includemain(){int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\n",n);}上面是C语言源程序现在*pk=&k即为*pk代表的是k的地址*pm=&m代表的是m变量的地址在运算*pk*(*pm)时,不就是k和m的地址
*(p=&n)=*pk*(*pm)
#include
main()
{int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);
printf("%d\n",n);
}
上面是C语言源程序
现在*pk=&k即为*pk代表的是k的地址
*pm=&m代表的是m变量的地址
在运算*pk*(*pm)时,不就是k和m的地址在做乘法吗?
书上写的指针变量定义应该是:pk=&k,pm=&m,这样*pk=k,*pm=m,这个我知道
所以不明白为什么*pk=2;*pm=4;

*(p=&n)=*pk*(*pm) #includemain(){int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\n",n);}上面是C语言源程序现在*pk=&k即为*pk代表的是k的地址*pm=&m代表的是m变量的地址在运算*pk*(*pm)时,不就是k和m的地址

不要把指针声明时的 * 跟使用时的 * 混淆了.


*pk = &k; 这行是在声明的同时初始化赋值,等同 int *pk = &k.

这时候的 * 意思是 pk 是指向前面指定数据类型的一个指针,整句解读为声明一个整型指针 pk,其值为 &k 就是 k 的地址.


而声明过后,使用该指针的时候,如 *pk * (*pm)中,pk 和 pm 前面的 * 意思是取指针 pk 所指向的内存空间的值.在你的代码中, (*pk) 的使用等同使用 k , 因为 pk 的值是 k 的地址.


如果指针在声明过之后再改变它的值,直接 p = &k 这样赋值.如:

int *p;
p = &k;

这时候不能使用 *p = &k.


仅有在声明的同时赋值,你才会看到 int *p = &k 这样的带着 * 给指针赋值的写法.


话说,正因为如此,究竟是写成 int *p = &k 还是 int* p = &k 存在一些小争议.因为在声明中或者强制类型转换中,其实可以将 (int *) 看成表达数据类型.就是说这时候 * 其实不是对 p 的操作,而是跟 int 一起,表示 p 是整型变量的指针.

*(p=&n)=*pk*(*pm) #includemain(){int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf(%d ,n);}上面是C语言源程序现在*pk=&k即为*pk代表的是k的地址*pm=&m代表的是m变量的地址在运算*pk*(*pm)时,不就是k和m的地址 C语言程序第三行中*pk=&k,为什么有人说*pk 跟 k 等价 *pm 跟 m 等价#includemain(){ int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf(%d ,n);}如果*pk 跟 k 等价*pm 跟 m 等价,那应该是pk=&k,pm=&m啊? 下面这个程序的运行结果为什么是8?*(p=&n)=*pk*(*pm);这个地方又如何理解#includemain(){int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf(%d ,n);} *(p=&n)=*pk*(*pm);n初始值是4;最后n的价值是*pk*(*pm)得出;解释一下就是指针本身不代表什么,而是所指向的地址代表什么 #include void main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm);*(p=&n)=*pk*(*pm);我以为*(p=&n)与*n等价,不就是6=2*4;但实际是n=8我认为指针中的星号意为所指地址的内容.(除多维数组指针.) 如图,正三角形ABC中,AD、BE、CF是三条高线,P是任意一点,PG⊥AD于G,PM⊥BE于M,PK⊥CF于K,求证:PK=PG+PM求证:PK=PG+PM请无聊的人不要乱说! *pk=&k,*pm=&m是什么意思如果已定义k和m都等于2,那pk等于多少 .定义:设有限集合A={x|x=ai,i≤n,i∈N+,n∈N+},S=a1+a2+… +an,则S叫做集合A的模,记作|A|.若集合P={x|x=2n-1,n∈N+,n≤10},集合P的含有三个元素的全体子集分别为P1,P2,…,Pk,则|P1|+|P2|+…+|Pk|= (用数字作答) 如图,已知在正△ABC中,AD、BE、CF是三条高线,P是任意一点,PG⊥AD于G,PM⊥BE,PK⊥CF于K,求证:PK=PG+PM过P点做PI∥FC。 帮我看看matlab程序错误function [h,q]=multioderarnoldi(A)n=1000;p=10;%端口数syms q;phi0=ones(n);phik=zeros(n);B=ones(n,p);R=inv(phi0)*B;%由上式求R,n*pK=zeros(n,p);%n*p[q0,K]=qr(R); M=4850;%多项式系统阶数q=(n-1)*p;for k=1:n-1Ak=-i 已知集合P={-5,-4,-3,-2,-1,0,1,2,3,4,5,},它的所有非空子集记作Pk(k∈N,1≤k≤2047),每一个Pk中所有元素的乘积记作pk(k∈N,1≤k≤2047),则所有pk之和的值等于 M(-1,2),N(5,2),|PM|-|PN|=6,则P的轨迹方程为 杭电1008水题,怎么会wa了?顺便菜鸟师傅.#include #include using namespace std;int main(int argc,char *argv[]){int n,s,p,m,i;while(cin>>n&&n!=0){p=0,s=0;for(i=0;i>m;if(pm){s+=(p-m)*4+5;p=m;}}cout x=a(1+pm[(1+p)^m/n -1] /[(1+p)^m -1] ^^这个符号什么意思^ 如图所示,BD平分∠ABC,AB=BC,点P在BD上,PM垂直AD,PN⊥CD,M、N为垂足.求证:PM=PN 如图,OD平分∠AOB,OA=OB,点P在OD上,PM⊥BD于N.求证:PM=PN OD平分角BOA.OB=OA.P是OD上一点,PM垂直BD.PN垂直AD.垂足分别是M、N求PM=PN (F/P,i,n)=(A/P,i,n)/(F/A,i,n)如何证明正确?