| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4791 人关注过本帖
标题:自认为基础很好的请进,反正我是不信我学好了helllo word!
只看楼主 加入收藏
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
回复 74楼 TonyDeng
7:宏和类与析(构)函数问题!
大多数看懂了 举的学生管理系统例子 正适合我现在
图片附件: 游客没有浏览图片的权限,请 登录注册
特意说的例子在哪 请给我个链接

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-13 15:26
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
回复 77楼 TonyDeng
这链接 有问题 你在看看

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-13 15:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
指针是不好的。

授人以渔,不授人以鱼。
2011-08-13 15:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 81楼 风生钧起
就是8楼最后一段啊

授人以渔,不授人以鱼。
2011-08-13 15:42
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
8楼最后一段 你去点点看
直接是 VFP论坛 茫茫多的贴

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-13 15:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我没说8楼有链接给你点呀

授人以渔,不授人以鱼。
2011-08-13 15:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
哦,77楼的连接,没设好,改过来,是这个:https://bbs.bccn.net/thread-347482-1-1.html

授人以渔,不授人以鱼。
2011-08-13 15:47
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
回复 87楼 TonyDeng
结贴 给分啦 果断去操作 学生管理系统 早点过了C去学别的

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-13 15:51
狂风VAH
Rank: 1
来 自:河南
等 级:新手上路
帖 子:13
专家分:8
注 册:2011-8-9
收藏
得分:0 
关于结构体的大小,我在网上看到一篇文章,或许对你有帮助
本文来源自:http://blog.   ————小小e家人

本人今天被华为鄙视了一下,痛定思痛,总结一些自己的不足之处,给大家分享一下,本次只说sizeof,总结的还不全面,也可能有些理解上的偏差,望大家不吝赐教,也希望大家有新的用法拿出来交流一下:


一切以实例说明
例1: char string[]="hello";
          char *p=string;
          sizeof(string) =?    sizeof(p)=?
   答:sizeof(string)=6    sizeof(p)=4.
          分析:字符串有一个默认的结束符号"\0", 而这个结束符号是不会显示在字符串中的,char型的数据一个大小就是1,所以,第一个长度为6;而第二指针,它虽然是指向char类型的数组,但指针本身确实一个4字节的整型数据,所以,第二个位4.

例2:char arr[3][5];
         char (*p)[5];
         p=arr;
         long **q;
         char **a[2][3];
         sizeof(arr)=?  sizeof(p)=?    sizeof(q)=?  sizeof(*q)=?   sizeof(a)=?
  答 :  sizeof(arr)=15  sizeof(p)=4    sizeof(q)=4  sizeof(*q)=4  sizeof(a)=24
         分析:数组的维数和数组的类型决定,数字的sizeof大小,第一个就是 3x5x1=15; 后面三个再一次说明一个问题,一个指针不管指向何种 类型,指针本身就是一个四字节的整数,所以不论什么样的指针大小都是 4 ,而a是一个指针数组,里面存的全是指针,所以sizeof(a)=2*3*4=24

 例3:void Fun(char str[10])
                  {
                 sizeof(str)=?  
                  }
          答: sizeof(str)=4
                  分析:str是函数的参数,它在做sizeof运算时,被认为是指针;因为调用函数Fun(str)时,数组是传址的,程序会在栈上分配4个字节 的指针来指向数据。
 
下面结合结构体说一下sizeof的使用 本系统定义short型为2字节   int为4字节    char为1字节
 例4:struct AA  
            {
             char   aa;//char aa[3];  
             short  ab;
             int      ac;
            };
    struct BB
            {
             char ba;      
             int     bc;  //b,c顺序颠倒一下
             short bb;
            };
     struct  CC
            {                 
            short cb;
             int     cc;  
             struct AA   aa;
             char ca;
            };
     struct DD
            {
             int      dc;
             short  db;
             char   da;
              }
      struct AA  a;
      struct BB  b;
      struct CC c;
      struct DD d;
           sizeof(a)=?      sizeof(b)=?  sizeof(c)=?  sizeof(d)=?
 答:sizeof(a)=8      sizeof(b)=12     sizeof(c)=20  sizeof(d)=8
        分析:肯定有人会怀疑 a不就只有三个变量吗? 而三个相加 1+2+4=7 嘛,怎么会是8呢? 而且b和a只有其中两个变量颠倒了一下位置,为   啥结果就不一样了呢?  其实这里面牵涉到一个变量对齐的问题,一个结构体里面的变量存储的空间应以其成员最长的那个数据类型来对齐的,而且对齐方式是逐步的,不是一下子就把所有的变量的都这样对齐的,是有先后逐步顺序的。最后所有存储的字节大小必须是本结构体最长基本类型的整数倍
      拿AA来说,第一个出现的变量是 char型的存入存储器的也只有一个字节,而紧接着是一个short类型的,short类型的是两个字节的,加上前面一个字节是3个,这样在内存中,不能对齐,存取都不方便,所以目前默认的存储方式就是把前面空一个字节,然后再存int型数据,而此时前面刚刚好有四个字节是对齐的,所以,现在就不用为了对齐在前面填充空字节了,1+1+2+4=8。( 如果第一个是char aa[3],那么结果又等于多少呢? 原理一样,先存三个字节, 根据接下来的是个short 的型的,我们在前面补充一个字节,再接下来是一个int型的,此时前面只有3+1+2=6个字节,不是int型4字节的整数倍,只好继续在前面填充2,最终结果就是:3+1+2+2+4=12)
      BB 里面的变量出现的顺序和AA就不一样了,首先出现一个char型变量占一个字节,紧接着就是一个int型指针,占四个字节,和前面的不齐,怎么办,只有在前面填充3个字节,这样看起来就工整一些了;接着又出现一个short型的了,而此时前面已经规定了四字节对齐,short只有两个字节怎么办,只好空两个字节,所以BB 就成了1+3+4+2+2=12字节了;至于CC大家自己分析一下吧,俺就不罗嗦了。
     DD的计算是 4+2+1+1=8,我的理解就是,整体思路要存的数肯定是4 的整数倍,而short型的是2,但后面还有更短的字节存进来,所以先把后面的数先存进来,在进行对齐处理。
对上述四个sizeof在内存中,存储的情况模拟如下:
AA:=8
|char  |------|---short---|
|------------int------------|
BB:=12
|char  |------|------|------|
|------------int------------|
|----short---|------|------|
CC:=20
|----short---|------|------|
|------------int------------|
|char  |------|---short---|
|------------int------------|
|char  |------|------|------|
DD:=8
|------------int------------|
|---short---|char  |------|
收到的鲜花
2011-08-13 18:03
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:0 
结贴啦?哈哈,混了十分…………
收到的鲜花

2011-08-13 19:54
快速回复:自认为基础很好的请进,反正我是不信我学好了helllo word!
数据加载中...
 
   



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

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