关于c++类的一些小问题

假设 我定义了一个
class a
{
int c;
public:
void foo()
{
cout << 1 << endl;
}
};
假如我a b那么b里面包含了我的c和我的foo

那么为什么我sizeof(a) == 4
foo不占地方呢

如果foo占地方 那岂不是我创建的每个对象都要占用一定的内存 那岂
不是贼耗内存 那么干脆我都定义成static类算了 那我不就能够节约很多
空间

1

3个回答

函数的地址和函数运行分配堆栈是两个概念。

1

需要明白,成员字段是每个对象都有一份副本的,也就是说,对象的大小是成员字段决定的,而与类中的函数无关。
a obj1;
a obj2;
obj1和obj2这2个对象都各自包含自己的一个成员字段c,互不影响。

函数都只存储一份,且不占对象 的空间。

因为函数本身也是数据,是指令的集合,一旦一个函数编写完了,它就固定化了,你能在运行过程中,把一个函数修改吗?当然是不可能的。
既然不能修改,那就共用一份不就OK呢吗?每次调用函数,我就去相同的地方找到这个函数并调用他。
也就是说:类a 的所有实例都可以调用函数foo,是共用了foo函数,而不是每个实例都存储一个foo函数。

记住:任何函数,(除了某些情况下的inline函数和宏函数),都只有一个副本。
那函数存储在哪里呢?
程序对虚拟地址空间的分区管理:栈区,堆区,数据区(bbs和已经初始化静态量),代码区。
函数被编译后形成的机器指令存储在代码区,这个区是只读的。
也就是说,所有的函数被存储在一个逻辑上独立的内存区域,和你程序中使用的局部变量,堆等都隔离开了。

给你一份测试代码:你会发现各个不同程序对象输出的地址存在明显的分段现象。

 #include<stdio.h>
 void foo()
{

}


void bar()
{

}

int global = 1000;

int main(void)
{
    int local = 1;
    int*p = new int;

    printf("-------函数的地址测试-------\n");
    printf("foo的地址:%p   ",foo); 
    printf("bar的地址:%p",bar); 
    puts("\n\n");


    printf("-------局部变量的地址测试-------\n");
    printf("local的地址:%p   ",&local); 
    puts("\n\n");


    printf("-------全局变量的地址测试-------\n");
    printf("gloabl的地址:%p   ",&global); 
    puts("\n\n");


    printf("-------堆地址测试-------\n");
    printf("p指向的堆的地址:%p   ",p); 
    puts("\n\n");



    return 0;
}

0

C/C++中的,函数名代表的值就是函数在内存中起始的地址,这也验证了函数在内存中存储的唯一性。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于C的一些小问题
[size=11px]S[/size][size=14px][/size]在C中用二分发查找数据有简单的方法吗?求代码
关于C语言的一些小问题
main()rnrn int a;rn char c;rn scanf("%d",&a);rn scanf("%c",&c);rn printf("a=%d,c=%d\n",a,c);rnrnrnrnrnZ最后结果是怎样的。为什么呀。为什么a=64,b=97
关于string类中的一些小问题的总结
在学习了深拷贝&浅拷贝&引用计数后,我简单的对本节课做了一个小总结: 1.什么是浅拷贝,里面存在什么问题?      简单来说,浅拷贝就是对象的数据成员之间的简单赋值。     在浅拷贝中,若在string类中没有给出拷贝构造函数和赋值运算符重载函数,则系统会默认生成如下拷贝构造和赋值运算符重载函数。 //拷贝构造函数 string(const string&s) :_pstr(
C中的一些小问题。。。
/* Note:Your choice is C IDE rn rn作用: 随机数加密法,,,,rn以下有许多不懂,请教一下,请主意代码;rnrn*/rn#include rn#include rnunionrnrn int value; rn structrn rn char first;rn char second;rn fran;rnnum;rnmain()rn rn FILE *fp,*name2; /* name2位加密存放的文件 */rn int i,t,len,k1,k2,k3,k4,k5;rn float j;rn char name1,buf[60000]; /* name1位用户输入的要进行加密的文件 */rn printf("\n input filename that you want to lock or open:");rn scanf("%s",name1); rn if((fp=fopen(name1,"rb"))==NULL) /* 以只读的方式打开一个二进制文件 */rn rn printf("File cannot be opened\n");rn exit(1);rn rn elsern printf("File opened for encrypt\n");rn j=filelength(name1);rn printf("\ninput key1:"); rn gets(k1);rn printf("\ninput key2:"); rn gets(k2);rn printf("\ninput key3:"); rn gets(k3); rn srand(k1);rn for(i=0;i
有关C的一些小问题
在别的论坛看见的帖子,看了看发现自己也不会,所以问一下rn【一】[code=C/C++][/code]rn#include rnrnmain()rnrnrn int a = 2,b = 4 ,c = 6, y;rn y = (a + b),( b + c);rn printf("%d\n",y);rnrnrnrn这行代码,我听鱼C论坛说y值应该为(b+c)么?rn为什么运行N遍值还是6啊??rn【二】[code=C/C++][/code]rn#include rnrnmain()rnrnrn int i=5, j=5, p, q;rn p = (i++)+(i++)+(i++);rn q = (++j)+(++j)+(++j);rn printf("%d %d %d %d\n",i,j,p,q);rnrnrn为什么q的值为22,而不是21???rn
c函数的一些小问题
为什么有些程式里的函数前面要加个下划线"_"呢,其实不加下划线也可用.MSDN里好多都加下划线.这个下划线有何用?是C99的标准还是?
关于C语言中代码的一些小问题
本人C刚入门,遇到关于 gets;strlen(s);这两个代码名词,谁能解释下,谢了!!
输出语句中的星号小谈
突然想起来的一个问题,也是看书没注意的一个小问题,这样对比最有效果#include<stdio.h> int main(void){ char *p="the text is null"; printf("%.*s\n",2,p); printf("%*.*s\n",10,6,p); printf("%*s\n",20,p); printf("%*s\n",
关于C语言顺序表实现的一些小问题。
typedef struct rn ElemType *elem; rn int length; rn int listsize; rnSqList; rn rnSqList L; rn rnSqList* InitiaList() rn L.elem=(ElemType *)malloc(LIST_SIZE*sizeof(ElemType)); rn if(!L.elem) rn rn printf("溢出,扩展空间失败!"); rn return 0; rn rn L.length=0;/*长度为0*/ rn L.listsize=LIST_SIZE;/*分配的内存空间为LIST_SIZE*/ rn [color=#FF0000] return &L;[/color] rn rnrnrn这上面的rnreturn &L ;这个语句是将L的地址返回给谁啊。。。主函数里是直接调用这个函数的
求助关于C语言程序学生管理系统的一些小问题
一个用C语言做的学生信息管理系统..为求简便数据直接保存在内存中..程序做完在编译的时候有错误....求达人帮忙看看错在哪..小弟实在看不出错的地方...谢谢了...源码见楼下..rn
关于C字符串数组格式化输出的一些小问题
尝试写了一个输入输出文件和小程序,因为出问题的就只有这两行代码,所以没有把其他代码贴上来n最初代码是这样的 head[][5]n```nchar head[][5] = "id", "name", "age", "grade" ;nfprintf ( input_file, "%s\t%s\t%s\t%s\n", head[0], head[1], head[2], head[3] );n```nn但是输出后会看到grade后面有一个 ? 字符n但是将 head[][5] 改成 head[][6] 就不会出现这个问题nhead 数组最长的元素也只有5个字符啊,但是为什么输出的时候会变成这样?n是因为 \0 的关系吗?
关于JS对象的一些小问题
输出所有的key和value我们经常需要获取一个js对象的所有key和value,此时使用Object.keys(obj)和Object.values(obj)即可,如下所示var obj = new Object(); obj.file = "/user/test"; obj.size = "1024"; console.log(Object.keys(obj)) //输出keys--["fil
关于Mongodb的一些小问题
1.关于创建Mongodb超级管理员问题: 旧版本的Mongodb: use admin db.addUser("admin","admin") 在新版中会报错:TypeError:db.addUser is not a function 新版本的Mongodb: use reporting db.createUser( { user: "admin"
关于MyEclipse的一些小问题
2009-03-03 23:221、如何清除MyEclipse内置浏览器地址栏内的地址? 清理 workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.genuitec.org.eclipse.webbrowser.prefs 2、错误:警告: Parameters: Invalid chunk ignore...
关于IDEA的一些小问题
最近公司,新来的一位新同事,今天在给他弄idea的操作的时候,突然发现他的idea的成这样了,最右面没有 界面了 这个时候没有我想要的maven projects的项目,无法进行clean ,以及一些其他的操作 只要我们执行这个操作 则此时我们就可以从右面看到了页面 则此时就解决了idea的界面的异常的操作 2.还有idea的安装jdk的操作 上
关于jsp的一些小问题
问题1.rn 如何通过RandomAccessFile类的seek()方法将指针移动到文件末尾,再用writeChars(String s)将数据写入某个文档文件rn问题2.rn StringTokenizer是什么东西,干嘛用的?rnrn 由于小弟初学jsp,对很多东西都不懂,麻烦大哥大姐细心解答!谢谢@!rn
关于窗口的一些小问题
怎样做到只在任务栏显示一个窗口?rnrn在mdi容器里弹出窗口能做到这样rnrn但是从mdi窗体弹出窗口,当我点击增加,又会弹出新窗口,怎样才能做到这个窗体也在窗体内(即无论打开是什么窗体,任务栏都只显示一个窗体,现在是主窗体+子窗体)
关于schema的一些小问题!
与有什么区别?一样的把?
关于socket的一些小问题
1, tcp协议中, accept()返回一个可用的socket, 如果不停的accept(), 是否可以对accept()返回的socket进行select()操作?rn如果可以, 是不是可以把select模型和pool结合起来呢?rn我想法大概是这样子的:rnrnaccept()产生出一些可用连接的队列, 然后对这些队列进行select()操作返回一个可读写的socket, 然后从pool中选一个thread执行读写操作.rnrn这样理解是否正确?rnrn2.如果考虑不同平台的移植性, 需要考虑什么问题? 仅仅针对socket来说?rnrn我的想法是, (针对tcp)只使用socket(), bind(), listen(), accept(), recv(), send()这些函数.rnrn3.好像是在listen()中可以指定最大连接数目, linux和windows平台允许的最大连接数目是多少?rnrn4.如果我用accept()创建了一个长连接, 在很长一段时间内没有进行recv()/send(),假设双方机器都正常, 并且都没有关闭他, 这个连接是否会自己断开?rn
关于listview的一些小问题
我已经填好了listview的内容,但根据不同情况,可能会做一些改动,比如,我想在item为2column为3的地方修改,请问应该怎样做呢??谢谢大家了。
关于COM的一些小问题
第一个问题是这样rn比如我有个IA接口,我要从中获得某个文件内容的项数rnHRESLUT GetCount(LONG *nCount);C++好说,请问这个在C#怎么调用?C#据说不是没指针么?rnrn第二个问题是这样:rn我有两个组件IA和IB,我在IA接口中读入一个文件,其文件句柄是IA的class CA的成员变量m_hFile;rn我在IB中想得到这个文件句柄去处理,而接口只能是 Run(IA* pA)(只能是获得IA接口,请问通过IA接口怎么获得文件的句柄)?
关于Direct3D的一些小问题
我使用Direct3D的目的:主要是为了建立3维坐标系,以便一些数学应用和数据显示(无需特效)。rnrn在编程时,用的最多的是三维线。现在使用如下方法:rn先将数据写入CustomVertex.PositionColored的数组中,然后在渲染过程中用device.DrawPrimitives方法显示。rnrn问题一:感觉代码效率很低,请问有没有高效一点的方法?rnrn问题二:如果显示200W个数据,就需要绘制400W条线,会不会太恐怖了?需要哪个的显卡才能满足要求?显存会有问题吗?rn 9400的显卡,能显示多少条线,并且保持60帧。rnrn问题三:使用mesh显示三维文字。如果不使用灯光,文字是白色的;使用灯光后,线的颜色会变成mesh的颜色?rnrn问题四:用GDI+绘制二维坐标系 与 用D3D绘制二维坐标系 相比,哪个效率搞一些?(GDI+已经够用)
一些关于构造方法的小问题。。。
。。在构造方法中写一个 for循环 然后打印出i的值 比如 [code=Java]rnrn for(int i=0;i<10;i++) rn rn System.out.println("i的值 "+ i);rn rn[/code]rnrn输出结果是:i的值 0rni的值 1rni的值 2rni的值 3rni的值 4rni的值 5rni的值 6rni的值 7rni的值 8rni的值 9rni的值 0rni的值 1rni的值 2rni的值 3rni的值 4rni的值 5rni的值 6rni的值 7rni的值 8rni的值 9rn rn请问一下为什么会打印两次呢。、。而在类的其他的非静态方法中只打印一次。。这是为什么呢
关于:存储过程的一些小问题
以下是我写的存储过程,关于刷新库存记录的。但在SQL中执行,一直报错,实在是找不出哪里有错。恳请各位高手指导!rnSET ANSI_NULLS ONrnGOrnSET QUOTED_IDENTIFIER ONrnGOrnrnCREATE PROCEDURE [dbo].[原料库存初始化]rn/*@cnbh varchar(20),rn@scrq datetime,*/rnrnASrnBEGIN transactionrn/*库存中没有记录,增加记录*/rnINSERT INTO WZ原料库存明细 (厂内编号,来唛或规格,原料名称,产地,批号,生产日期,技术品级,单位,单件公定,仓库编号,仓库名称,库存件数,库存重量)rn     SELECT rc.厂内编号, rc.来唛或规格, rc.原料名称, rc.产地, rc.批号, rc.生产日期, rc.技术品级, rc.单位, null, rc.仓库编号, rc.仓库名称, null,nullrn FROM WZ原料入库明细 AS rc left join WZ原料库存明细 AS kc on(rc.厂内编号=kc.厂内编号 and rc.生产日期=kc.生产日期)rn WHERE kc.厂内编号 is null rn/*修改库存信息*/rnUPDATE WZ原料库存明细 SET 单价=case when 库存件数<=0 or (库存件数+件数ALL)<=0 then 单价rn ELSE (库存金额+金额ALL)/(库存重量 + 厂检公定ALL) END,rn 单件公定=case when 库存件数<=0 or (库存件数+件数ALL)<=0 then 单件公定rn ELSE (库存重量+厂检公定ALLL)/(库存件数 + 件数ALL) END,rn 库存件数 = 库存件数+件数ALL,rn 库存重量= 库存重量+厂检公定ALL,rn 库存金额=case when 库存件数<=0 or (库存件数+件数ALL)<=0 rn then 单价*(库存重量+厂检公定ALL)ELSE(库存金额+金额ALL) END,rnFROMrn(SELECT 仓库,厂内编号,'件数ALL'=sum(件数),'单价'=sum(金额)/sum(厂检公定),'金额ALL'=sum(金额),'厂检公定ALL'=sum(厂检公定)rn FROM WZ原料入库明细 GROUP BY 厂内编号,生产日期) AS RKrnWHERE WZ原料库存明细.厂内编号=RK.厂内编号 AND WZ原料库存明细.生产日期=RK.生产日期rn/*加入历史*/rnINSERT INTO WZ原料验收入库单_历史 SELECT * FROM WZ原料验收入库单rnINSERT INTO WZ原料入库明细_历史 SELECT * FROM WZ原料入库明细rn/*清除WZ原料验收入库单*/rnDELETE FROM WZ原料入库明细rnDELETE FROM WZ原料验收入库单rnCOMMITrnGOrn错误信息:rn消息 170,级别 15,状态 1,过程 原料库存初始化,第 10 行rn第 10 行: ' ' 附近有语法错误。rn消息 156,级别 15,状态 1,过程 原料库存初始化,第 22 行rn在关键字 'FROM' 附近有语法错误。rn消息 156,级别 15,状态 1,过程 原料库存初始化,第 24 行rn在关键字 'AS' 附近有语法错误。rn
关于seekBar的一些小问题
当你设置seekBar.setMax(1000)方法的时候,他也会触发seekChangeListener方法。
关于内存管理的一些小问题
???????????? ????????????retainCount????????????0.@autoreleasepool { NSObject *obj = [[NSObject alloc] init]; [obj release]; NSLog(@"retainCount is %lu", obj.retainCount); } ????????
关于TComboBox的一些小问题
大家好,我是个C++ Builder新手,有个问题想请教一下:rn我正在做一个数据库浏览工具,添加了ComboBox下拉菜单的内容(例如数据表的字段)后,为什么当运行时ComboBox框里的字符即ComboBox的Text会显示出来?可以另运行后清空ComboBox框吗。请问应如何解决?rn谢谢各位!
关于汇编程序的一些小问题
1.怎么在汇编程序中没有像高级语言一样的输出语句都会将结果输出到屏幕呢?rn2.什么时候才用到堆栈段呢?rn3.是不是程序中一定要有堆栈段呢?rn4.书上的堆栈段为什么都是这句呢?rn stack1 para stackrn dw 20h dup(0)rn stack1 endsrn5.那里有汇编程序编辑器下载呢?rn
关于tomcat的一些小问题
今天帮同事遇到一个很郁闷的问题,在eclipse里面启动tomcat的时候,观察后台日志,都已经启动完毕了,但是tomcat的状态却一直处于正在启动的状态,访问也报404,就是代表未启动好,找了许久,处理了几个地方,不知道是不是对的,但是最后的结果证明,还算是成功的 1、在服务器中有个server.xml的配置,检查该配置中的配置和项目中配置是否一直 2、删了项目部署的所有文件,重新部署一次 ...
关于session的一些小问题
session在用户未关闭浏览器或退出之前rn像session("userid")这些已经赋值的变量的值不是一直存在的吗?我用他来记录登陆者的一些信息,在其他页面用,但是在其他页面session("userid")好像没有值了,我用response.write""session("userid")""却没有任何信息输出,请问是怎么回事。
关于QT的一些小问题
1、QT开发IOS和安卓程序,可以代码不经修改编译成支持各平台的程序吗?rn2、开发的桌面程序,能代码不经修改移植到手机上吗?凭什么叫跨平台?rn3、java号称跨平台,但是开发安卓程序,也用的安卓的SDK,而不用ME。QT是不是也是如此呢?只有开发特小的程序才不用API,开发稍大点的程序都得用相关系统的API?rn4、QT实现键盘HOOK,还得调用windows操作系统的API,很多功能都实现不了,只是减少了百分之50的重复代码?还得去学相关系统的API?rn5、如今IOS都用OC,安卓都用JAVA,用QT的多吗?只有linux环境用的多吧,windows程序有多少用QT的,只有WPS和金山打字通,大多都是直接用API封装的各种DirectUI库?rn6、虽说很多linux图形软件用了QT,可是做图用linux版的3Ds max的人多吗?
关于visio的一些小问题
初涉visio,遇到了一些小问题,请用过的朋友指教,先谢谢了!rnrn1、visio professional 2003 和 Visio for Enterprise Architects 2003 是不是一回事呀,有什么区别呀?rnrn2、安装了 visio professional 2003 后,发现其中如属性窗口的内容等显示不全,这是怎么回事呀?(比如 Isroot Isleaf Abstract等,只能显示出Isroot、Abstract,就是说看不全最右边的),下了两个都是这样。rnrn3、又下了一个visio 2002 ,这下能显示全了,又发现没有c#,是2002不支持么?rnrn晕呀,想用点东西真是太难了,求助大家……
关于正则表达式得一些小问题
Pattern p = Pattern.compile("(?!=e).3,5?");rnMatcher m = p.matcher("love52000");rnwhile(m.find())rn System.out.println(m.group());rnrn为什么会输出lov e52 000 而不是lov 520 00rnrnprintContent("i love you".matches("^i\\b\\w*\\b.*you$"));输出truernprintContent("i love you".matches("^i\\b\\w*\\b\\w*you$"));输出falsern这两个表达式的结果为什么不一样
关于javascript的一些小问题
[code=JScript]rn rnrnrn rn rn rn rnrnrn[/code]rnrn1、大家帮我看看为什么我加了if判断后点击a标签没调用函数 rn2、用event如何控制显示的位置 不太会用它 想让他显示在文本框的下面 左面和文本框一样对齐 但是总搞不定rn3、event.cancelBubble=true;return false 这个有什么用 看了书后也没感觉到什么 它有什么作用吗
关于视频网的一些小问题
1.优酷,土豆保存的视频为什么会那么复杂,是为了防止会随机生成相同的名字的原因么?(我去采集了一下,视频存放地址是http://119.188.0.204/1974B43845F3882989C8113166/03000201004B0F31A33EB602BE2CD6F6FCC2AB-2771-5670-ABD3-F7BB4C62609A.flv)rn2.他的视频保存地址是怎么保存的呢?rn3.他的所有静态页地址都存在一个文件夹里,而且文件夹的命名是字母随机生成。这样管理文件夹有什么好处呢? 如果我要是按当前日期时间分钟秒的形式保存有什么弊病么?rn4.希望有做过视频网的遇到的一些问题给我提携意见!rn谢谢 就问这么多了。rn
关于Windows 一些小问题
我用VC++6.0编写了一个windows窗口程序,但是编译器老是弹出一些错误,请高手指点一二:rn#include rn#include rnrnLRESULT CALLBACK WinSunProc(rn HWND hwnd, // handle to windowrn UINT uMsg, // message identifierrn WPARAM wParam, // first message parameterrn LPARAM lParam // second message parameterrn);rnrnint WINAPI WinMain(rn HINSTANCE hInstance, // handle to current instancern HINSTANCE hPrevInstance, // handle to previous instancern LPSTR lpCmdLine, // command linern int nCmdShow // show statern)rnrn WNDCLASS wndcls;rn wndcls.cbClsExtra=0;rn wndcls.cbWndExtra=0;rn wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);rn wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);rn wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);rn wndcls.hInstance=hInstance;rn wndcls.lpfnWndProc=WinSunProc;rn wndcls.lpszClassName="Weixin2003";rn wndcls.lpszMenuName=NULL;rn wndcls.style=CS_HREDRAW | CS_VREDRAW;rn RegisterClass(&wndcls);rnrn HWND hwnd;rn hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW,rn 0,0,600,400,NULL,NULL,hInstance,NULL);rnrn ShowWindow(hwnd,SW_SHOWNORMAL);rn UpdateWindow(hwnd);rnrn MSG msg;rn while(GetMessage(&msg,NULL,0,0))rn rn TranslateMessage(&msg);rn DispatchMessage(&msg);rn rn return 0;rnrnrnLRESULT CALLBACK WinSunProc(rn HWND hwnd, // handle to windowrn UINT uMsg, // message identifierrn WPARAM wParam, // first message parameterrn LPARAM lParam // second message parameterrn)rnrn switch(uMsg)rn rn case WM_CHAR:rn char szChar[20];rn sprintf(szChar,"char is %d",wParam);rn MessageBox(hwnd,szChar,"weixin",0);rn break;rn case WM_LBUTTONDOWN:rn MessageBox(hwnd,"mouse clicked","weixin",0);rn HDC hdc;rn hdc=GetDC(hwnd);rn TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));rn ReleaseDC(hwnd,hdc);rn break;rn case WM_PAINT:rn HDC hDC;rn PAINTSTRUCT ps;rn hDC=BeginPaint(hwnd,&ps);rn TextOut(hDC,0,0,"维新培训",strlen("维新培训"));rn EndPaint(hwnd,&ps);rn break;rn case WM_CLOSE:rn if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))rn rn DestroyWindow(hwnd);rn rn break;rn case WM_DESTROY:rn PostQuitMessage(0);rn break;rn default:rn return DefWindowProc(hwnd,uMsg,wParam,lParam);rn rn return 0;rnrnrn编译器错误提示:rnCompiling...rndf.cpprnLinking...rnLIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainrnDebug/er.exe : fatal error LNK1120: 1 unresolved externalsrnError executing link.exe.rnrner.exe - 2 error(s), 0 warning(s)rn
关于Table的一些小问题!
网页中有一张表,我现在想在表中输入完数据后打印出来(不是打印网页),应该如何实现.另外是否必须在每个单元格中加入文本框才能实现在表的单元格中输入数据啊?
关于字体的一些小问题
为什么有些控件的字体需要在OnCtlColor中来设置(比如Edit,Static),有些控件的字体可以直接在OnInitDlg中用SetFont来设置(比如ListView)
关于创建表的一些小问题
如果用sql语句来创建表的话 如何给列设置默认值,还有在创建int类型时候怎么给它设置最大位数rn
关于斐波拉契数列一些小问题
在最近做一些算法题目时,遇到斐波拉契数列要解决的问题。 斐波拉契数列最容易想到的是斐波拉契数列递推公式。Fib(n) = Fib(n-1) + Fib(n-2); 这个公司会用到比较多的地方,比如爬梯子问题。可以看这个帖子,https://zhidao.baidu.com/question/47877813.html 首先是要搞清楚是否要用到递归,然后找到递归的公式,这个时候如果是斐波拉契数
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合