执行时,先判断p1是否等于&m;
等于则 p1==&m 值为1,否则为0;
然后 将p1==&m 的值赋值给a;
这个题中 p1是k的地址,&m是m的地址
分配的内存空间 肯定不同
不论他们的值相不相同,他们的地址都不同
所以 p1==&m 的值为0
所以 a=0
输出 0
按照你的要求编写的C语言程序如下
include<stdio.h>int main()
{
int a,b
int *p=&a
a=30
printf("a=%d\n",*p)
p=&b
scanf("%d",p)
a=*p+24
printf("a=%d,b=%d",a,b)
return 0
}
运行结果
a=30
76
a=100,b=76
#include "stdio.h"
void fun(int a[][6],int n,int m,int *odd,int *even)
{int i,j
*odd=*even=0
for(i=0i<ni++)
for(j=0j<mj++)
a[i][j]%2?*odd+=a[i][j]:*even+=a[i][j]
}
int main()
{ int n,m,i,j,a[5][6],odd,even
for(i=0i<5i++)
{ for(j=0j<6j++)
{ a[i][j]=i*6+j+1
printf("%4d",a[i][j])
}
printf("\n")
}
fun(a,5,6,&odd,&even)
printf("奇数之和=%d\n偶数之和=%d\n",odd,even)
return 0
}