- 博客(18)
- 收藏
- 关注
原创 初识MFC ---对话框
CPropertySheet 属性表单AddPage(&m_page1)//增加一个属性页到属性表单 m_page1为CPropertyPage类型CPropSheet propSheet("属性表单") //定义改对象时必须带参数propSheet.SetWizardMode(); //设置为向导式属性页,否则所有属性页在一个属性表单中propS
2013-07-27 00:04:30 531
原创 国嵌答疑 3
(a〈b?a:b)=3 语法错误!C编译器会报错 条件运算不能作为左值main(){if(0){#define AC_SYNC 1}#if AC_SYNCprintf("===\n");#endif}结果是会打印== (#define在预处理时定义,而if(0)在运行时才确定)#if #endif
2013-07-24 22:21:48 445
原创 将一个字符串逆序输出 & 为指针分配内存
#include #include void reverse(char *str);int main(){ char *s; s=(char *)malloc(sizeof(char));//一定要记得分配内存哦,不然会出现运行段错误的哦 printf("请输入一串字符:"); scanf("%s",s);
2013-07-19 16:01:08 1071
原创 将一个整型变量转换为字符串
将一个整型变量转换为字符串#include void itoc(char *str,int n);int count=0;int main(){ char str[10]; int n=1234; itoc(str,n); str[count]='\0'; printf("
2013-07-19 14:28:47 1186
转载 const在函数前与函数后的区别
const 的一些强大的功能在于它在函数声明中的应用。在一个函数声明中,const 可以修饰函数的返回值,或某个参数;对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: a &operator=(const a &a); void fun0(const a * a ); void fun1( )
2013-07-14 23:56:11 492
原创 const 数组 & 作用域
const int a[10] = {1,2,3,4,5};int i =0;for(i = 0; i a[i] = a[i] +s
2013-07-14 23:32:41 970 1
原创 C类型转换问题
如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下float ------> double 高↑long↑unsigned↑int ←── char,short 低横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。 纵向箭头表示当运算
2013-07-10 20:58:58 487
原创 i++, ++i , i = i+1 效率问题
计算机内部实现过程有别,详细如下:i=i+1的过程相当: temp=i+1; i=temp;i++的过程相当: temp=i; i=temp+1; return temp;++i的过程最简单: i增1然后return i 的值,一步完成,没有给任何temp变量赋值:效率问题:(如果编译器优化,效率一样)x=x+1最低,因为它的执行如下。
2013-07-10 19:34:51 771
原创 关于 字节对齐
字节对齐:减少CPU访存次数(以空间换时间),有的cpu必须要求字节对齐,否则出现异常gcc 不支持#pargma pack (8) 按默认的4字节对齐 , vc支持如: struct s{char a; double b;} gcc下可能为12字节,而VC下为16字节(8字节对齐) 对齐的原因是为了减少cpu访问变量的次数,这时补充为8字节没有
2013-07-10 18:57:37 533
原创 Linux C库之- 文件操作篇
相关函数 open、close、fopen、fclose、read、write、fread、fwrite、fcntl、link、unlink、stat、umask、头文件 基本数据类型caddr_t 核心地址。clock_t 表示系统时间(以时钟周期为单位)。comp_t 压缩的时钟滴答。dev_t 用于设备号。fd_set 文件描述集。fpos_t 文件位置。gid
2013-07-08 00:17:15 684
转载 restrict 关键字
restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,能帮助编译器进行更好的优化代码,生成更有效率的汇编代码.如 int *restrict ptr, ptr 指向的内存单元只能被 ptr 访问到,任何
2013-07-07 22:38:07 484
原创 《C++程序设计》笔记之-运算符重载
运算符重载实际上是函数的重载函数类型 operate 运算符名称 (形参表)Complex operate + (Complex &c2) 不能重载的运算符5个: sizeof 、 .(成员访问运算符)、 *(成员指针访问运算符)、 ::域运算符、 ?:条件运算符1、重载不能改变操作对象个
2013-07-06 16:54:59 642
转载 成员初始化列表和构造函数体初始化的区别
首先把数据成员按类型分类1。内置数据类型,复合类型(指针,引用)2。用户定义类型(类类型)分情况说明:对于类型1,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的对于类型2,结果上相同,但是性能上存在很大的差别因 为类类型的数据成员对象在进入函数体是已经构造完成,也就是说在成员初始化列表处进行构造对象的工作,这是调用一个构造函数,在进入函数体之后,进行的是
2013-07-05 23:39:35 853
转载 变量申明与定义
我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益)变量的声明有两种情况:1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别
2013-07-05 21:50:51 523
转载 C 与C++中 结构体区别
C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。C++中的结构体和类的异同:一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数; 也就是说在C++当中,结
2013-07-05 00:13:50 639
转载 const 修饰函数相关
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书
2013-07-05 00:05:30 390
转载 国嵌 答疑2
Sizeof问题 S: int *p = NULL; sizeof(p)的值是多少? //4 sizeof(*p)呢? //4 int a[100]; sizeof (a) 的值是多少? //100 sizeof(a[100])呢?//请尤其注意本
2013-07-04 00:04:57 613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人