论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C语言_题解

文章类别:C语言程序设计 | 发表日期:2010-3-21 13:55:19

C语言_题解

21视频教程网C语言编辑部3月21日整理

学生:

(1),stuct{  int i;
        char c;
        double a;}a;
sizef(a)为什么会等于11??
(2),#include<stdio.h>
      {int x;struct *y;}*p;
       struct tt a[4]={20,a+1,15,a+2,30,17,a};
      main()
      {int i;
       p=a;
       for(i=1;i<=2;i++)  {printf("%d,",p->x);p=p->y;}
      }
为什么结果是20,15,请详细解说下,谢谢!

C语言视频教程:

不同电脑或不同版本软件的话,对int char double 的规定是不同的,因此会出现11.

C语言视频教程:

1. 对齐:按单个变量占字节数最大的数量为一个单位,各个变量排列时,若两个或多个没有占满一个单位时,可以在一个单位内排列,若超出了,则从超出的那个开 始,从下一个单位开始算,以此类推,最终按单位的倍数计总字节数,结果应该是16
(2). struct tt a[4]={20,a+1,15,a+2,30,17,a};赋值的结果是:
a[0].x = 20, a[0].y = &a[1];
a[1].x = 15, a[1].y = &a[2];
a[2].x = 30, a[2].y = 17;
a[3].x = &a[0], a[3].y = 0;//是不是你30与17之间漏了一个a+3啦,要不然可以组成一个循环链表
for(i=1;i<=2;i++) 循环的次数是2,p = a 可得p == &a[0];所以第一次循环时实际上是打印a[0].x所以为20,然后p = a[0].y == &a[1],在第二次打印的时候为a[1].x == 15

C语言视频教程:

写程序时请注意格式,这样既美观又好查错。
程序代码:

struct
        {
        int i;
        char c;
        double a;
        }a;
        printf("%d",sizeof(a));
        return 0;


把sizef改为sizeof,stuct改为struct.
第一个编译结果是16.

学生:

这样啊,谢谢

C语言视频教程编辑部

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058