| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:我这样理解这一段代码可否?谢谢
取消只看楼主 加入收藏
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
我这样理解这一段代码可否?谢谢
      请前辈看一下,我这样理解这段代码可否?谢谢。


   #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之间会有一个“”?为什么
                                               
                                                两个输出列表却对应一个输出量?这样子不会出错吗?*/
}
搜索更多相关主题的帖子: 代码 
2010-12-10 17:06
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用cnfarer在2010-12-10 21:36:22的发言:

“此外我不明白是不是先进行*p=k,然后再进行k++、p++的操作”:可以这样理解
x=(j%4)?"%4d":"\n%4d"相当于:if (j%4) x="%4d"; else x="\n%4d";这样的形式
谢谢。
2010-12-11 18:53
快速回复:我这样理解这一段代码可否?谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033849 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved