tzkr.net
当前位置:首页 >> iF p A 0 >>

iF p A 0

if( p = a != 0 ) // 由于 != 的优先级比 = 的优先级要高,所以先运算 a != 0 因为 a = 5,所以 a != 0为真,即 a != 0的结果为 1 然后执行 p = 1 p = 1 不是一个逻辑表达式,只是一个赋值语句,所以应该是将 p 的值作为判断的依据,如果 p 为 0 则为 假, p 不为 0 则为真.因为上面的 p = 1,所以条件为真,所以应该输出 printf("%d\n",p); 结果应该为 1

int p 为定义变量p a=5 定义变量a,并赋值a等于5 if(p=a!=0) a!=0赋值于p 因为a!=0为真,所以赋p值为1

a[0]是二维数组的第一个元素,a[0]代表了元素a[0][0]的地址,也就是二维数组第一个元素的首地址,p为整形指针,if((p-a[0])%4 == 0) printf("\n");是说当p移动到了离a[0]的位置是4的倍数的位置就输出一个'\n';

if(p == '\0')==是关系运算符.就是判断p的值是否是'\0'.'\0'是字符数组的默认结束字符.

#include <stdio.h> int main() {int a[12]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a;p<a+12;p++) {if((p-a)%4==0)printf("\n"); printf("%4d",*p); } return 0; } ~

如果p减去这个数除以4的余数等于0它就输出一个空格

你好!if (p)即if (p==1)if (p) *p=0等价于if (p) p=1希望对你有所帮助,望采纳.

二维数组其实就是一维数组,元素一个一个顺序往后排,p指向a[0],然后每次往后移动 一个位置,当(p-a[0])%4,也就是说输出了四个元素时,就输出换行符,四个元素也就是a[3][4],,第二维的值.其实和下面这2层循环是一样的:for(int i=0;i<3;++i) for(int j=0;j<4;++j) printf("%4d",a[i][j]); print("\n");

因为p是指针,a[0]也是指针,两个指针相减,会得到一个整数,才能计算%4而a[0][0]是一个整数,指针减去一个整数,会得到另一个指针,显然指针类型是没法计算%4的a[0]实际就是&(a[0][0])

if(a)代表a不等于0时满足if条件,等价于if(a!=0).if(!a)代表a等于0时满足if条件,等价于if(a==0).补充拓展:C语言进行条件判断的时候,当逻辑值判断为真时才会执行if语句.而当一个变量为0或空时,它的逻辑值为假,其他情况下为真.所以,当a不等于0或空时,a和a!=0的逻辑值是真,!a和a==0的逻辑值是假,反之同理.

网站首页 | 网站地图
All rights reserved Powered by www.tzkr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com