📄 c和c++语言学习总结(一)_c语言教程_c++教程_c语言培训_c++教程培训.txt
字号:
C和C++语言学习总结(一)_C语言教程_C++教程_C语言培训_C++教程培训_C/C++频道_中国IT实验室 首页 | 互联网 | IT动态 | IT培训
| Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 |
服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 |
博客 | 论坛 输入您的搜索字词 提交搜索表单
首页资讯动态C语言C++编程C∕C++开发应用VC++C++Builder专题下载博客论坛
您现在的位置: 中国IT实验室 >> C∕C++频道 >> C语言 >> 基础入门 >> 正文 C和C++语言学习总结(一) 10大城市2万个热门IT职位
注册有奖
JAVAV工程师权威认证
广州中星报MCSE送CCNA3600元 上海英孚教育急聘
系统管理员 初级程序员 软件开发工程师
数据库工程师 高级项目经理 界面设计经理 中国IT实验室收集整理 佚名 2008-12-29 保存本文 推荐给好友 收藏本页
欢迎进入C/C++编程社区论坛,与200万技术人员互动交流 >>进入
知识结构:
1、if,for,switch,goto
2、#define,const
3、文件拷贝的代码,动态生成内存,复合表达式,strcpy,memcpy,sizeof
4、函数参数传递,内存分配方式,内存错误表现,malloc与new区别
5、类重载、隐藏与覆盖区别,extern问题,函数参数的缺省值问题,宏代码与内联函数区别
6、构造和析构的次序,String函数定义
具体实现: 1、if,for,switch,goto
if:
bool int float pointer char 变量的使用方法
bool bParam;
int iParam;
float fParam;
int* pParam;
char cParam;
if(bParam) ,if(!bParam);
if(iParam == 0 ),if(iParam != 0 );
if(fParam>= -0.00001 && fParam <= 0.00001);
if(pParam == NULL),if(pParam != NULL);
if(cParam == '\0'),if(cParam != '\0');
if/else/return 的使用方法
if(condition) 可以等价为 return (condition?x:y);
{
return x;
}
else
{
return y;
}
for:
执行效率问题:
int row,col,sum;
int a[100][5];
for(row=0;row <100;row++) 效率低于 for(col=0;col <5;col++)
{ {
for(col=0;col <5;col++) for(row=0;row <100;row++)
{ {
sum = sum+a[row][col]; sum = sum+a[row][col];
} }
} }
int i;
for(i=0;i <N;i++) 效率低于 if(condition)
{ {
if(condition) for(i=0;i <N;i++)
DoSomething(); DoSomething();
else }
DoOtherthing(); else
} {
for(i=0;i <N;i++)
DoOtherthing();
}
for (int x=0;x <=N-1;x++) 直观性差于 for (int x=0;x <N;x++)
switch:
switch(variable)
{
case value1: ...
break;
case value2: ...
break;
default: ...
break;
}
switch(c)中的c的数据类型可以是int,char,long,unsigned int,bool.
variable必须是整数或者强制为整数,由于char实际上是ASCII码,所以也可以.
c不可以是double,float,char*.
goto:
goto主要用于
{...
{...
{....
goto error;
}
}
}
error:
...
2、#define,const #
define和const区别1、#define C语言const C语言
C++语言const常量有数据类型,编译器会进行类型安全检查,而#define没有数据类型,const的常量可以进行调试,但宏常量不能进行调试。
2、const的使用方法在全局定义 const float PI=3.1415926在类中定义 class A
{...
A(int size);
const int SIZE;
};
A::A(int size):SIZE(size)
{
...
}
对参数和函数的定义(const只能修饰输入参数,不能修饰输出参数)
const int x=1; 表示x的值是1,在程序中不能改变;
const int* x; 表示x代表的地址所指向的内容是不能改变得;
int const* x; 与const int* x;的表示的意思一样;
int * const x; 表示x代表的地址是不能改变的;
当是输入参数时,不需要是void Func(const int i),void Func(const int& i),可以是void Func(int
i)
因为输入参数采用"值传递"(const int i),由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const修饰;
不用const int& i的原因在于内部数据类型的参数不存在构造、析构的过程,而复制也非常快,"值传递"和"引用传递"的效率几乎相当。
当是输入参数时,不需要是void Func(const A a),void Func(A a),可以是void Func(A& a)或void
Func(const A& a)
不用const A a,A a的原因是函数的效率比较低,因为函数体内将产生A类型的临时对象用于复制参数a,而临时对象的构造、复制和析构过程都需要消耗时间
最好用const A&a的原因是A&a中的a可以被改变,A&a和const A&a的好处在于都不会产生临时对象,效率高;
const A Func(const A&a )const的好处
第一个const表示返回的是个内部产生的对象,它不能被修改
const A Func(……)
{……}
const A a=Func(……);//不能是A a=Func(……);
第二个const表示输入的参数是引用传递,函数内部不会产生临时对象,而且这个对象不能被内部修改
第三个const表示此函数内部的所涉及的数据成员不能修改 class Stack
{
int m_num;
int GetCount(void) const;
int Pop(void);
}
int Stack::GetCount(void) const
{
m_num++;//编译错误,企图修改数据成员m_num;
Pop();//编译错误,企图调用非const函数
}
3、文件拷贝的代码 #include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
FILE* in;
FILE* out;
in=fopen("d:\\1.txt","rb");
out=fopen("d:\\2.txt","wb");
char ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
return 0;
}
动态生成内存的代码
------------------------------------------
正确代码:void GetMemory(char **p, int num)
{ *p = (char *)malloc(sizeof(char) * num);} char* GetMemory2(int num)
{ char* p = (char *)malloc(sizeof(char) * num);return p;}
------------------------------------------
错误的代码:void GetMemory3(char *p, int num)
{ p = (char *)malloc(sizeof(char) * num);}
------------------------------------------
[1] [2] 下一页
【责编:ben】
相关文章 C/C++中Static的作用详述
基础入门:并查集UFSet类
动态内存管理是C++重要的特性
基础入门:const修饰常量
编写最有代表意义的qt程序
C编写Windows服务程序详细介绍
编写一个桌面闹钟源程序
用C语言实现按钮新技术
C++中堆和栈的基础学习
基础入门:C++中const的使用方法
编辑推荐 · [ASP.NET].NET程序员新方向 Ruby核心语法入门
· [ASP.NET]基于ASP.NET MVC框架开发Web论坛应用程序
· [ASP.NET]利用UrlRewrite,asp.net动态生成htm页面
· [.NET Framework]DotNet for Symbian平台
· [ASP.NET]WCF 关于自定义MessageHeader支持
· [ASP.NET]如何定制页面提示信息(tooltips)
· [ASP.NET]对IOC和DI的理解
· [ASP.NET]主动编程与被动编程!
· [ASP.NET]发布一个锁定行列的一种方法
· [ASP.NET]使用配置文件构建和使用WCF服务
相关产品和培训 文章评论 友情推荐链接·华硕网络交换机
·金浪网络交换机
·联想交换机报价
·联想交换机价格
·lenovo交换机
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·网站推广优化
·全国IDC报价
认证培训 · Linux进入紧缺人才培训体系
· 深圳CIW470培训+考试3000元
· No.1高薪热门职业【网络系统集成】
· 全能网管思科微软黄金组合
· “紧缺人才培养计划”上海地区启动
· [上海]交大慧谷CCNP培训特价3990元
专题推荐
·Java设计模式之实例详解
·Oracle数据库11g 面向DBA和开发人员的重要新特性…
·桌面应用软件编程 J2SE技术详解…
·我“炫”我精彩-------WPF开发教程
·Oracle数据库备份与恢复之六大总结
·JAVA的应用编程接口——JAVA API详解…
·Linux Shell学习技术专题[上]…
·WEB开发——ASP.NET和PHP、JSP究竟学哪个
·五步带你入门XML
·关于Java框架技术专题
今日更新 · C和C++语言学习总结(一)
· 拷贝构造函数和运算符重载
· 送给正在学习C++朋友的50条建议
· C/C++中Static的作用详述
· 基础入门:并查集UFSet类
· C++数值类型转换方法 心得…
· 自己的不定参数函数的实现方法
· C++图象的渐显/渐隐 实现方法…
· 间接修改指针的地址技巧
· 批量html转text的实现方法
社区讨论 博客论点 频道精选 · 新版CCNA考试大纲 07年8月1日生效
· 新手学习宝典:Linux常用命令全集
· 知已知彼,深入了解系统安全知识
· 从入门到精通 java初学者实践系列教程
· 共同学习——Oracle入门基础专题
· ADO.net与PowerBuilder的综合比较
· 评论:中国互联网“钱”途何在?
· 中科院:龙芯要成"中国奔腾" 能卖1亿颗
C/C++频道相关导航 C语言:
基础入门 | 编程技巧 | 实例编程
C++编程:
基础入门 | 实例编程 |编程技巧
C++开发应用:
多媒体开发 | 游戏开发 | 数据库开发 | 网络通信
组件编程 | 系统应用 | 界面开发
资讯动态:
VC++:
C++Builder:
139
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -