我这样理解这一段代码可否?谢谢
请前辈看一下,我这样理解这段代码可否?谢谢。#include "stdio.h"
void main( )
{
int *p,s[3][4],i,j,k=1; /*定义一般变量、数组、指针变量*/
p=s[0]; /*使指针变量p指向数组的首地址*/
for(i=0;i<3;i++) /*利用循环和指针为数组各元素赋值*/
for(j=0;j<4;j++)
*p++=k++; /*这一步不是很明白:这一步我觉得是用来赋值,但是p不是指向s[0]的一维数组么?能够为s[3][4]赋值吗?此外我不明白是不是
先进行*p=k,然后再进行k++、p++的操作?*/
p=s[0];
for(i=0;i<3;i++) /*利用循环输出结果*/
for(j=0;j<4;j++)
printf((j%4)?"%4d":"\n%4d",*p++); /为什么会有(j%4)?这一个代码?这一个代码有什么作用?为什么两个%4d之间会有一个“:”?为什么
两个输出列表却对应一个输出量?这样子不会出错吗?*/
}