一起来读<<c++primer>>__基础篇__
本帖最后由 jains521 于 2013-7-13 12:04 编辑既然在能在末日浩劫下生还, 足以证明我辈是有可用武之地的.
饭后闲来无聊, 做了一个简单的计算:
<<c++primer>> 全书1000余页, 假设我每天读10页, 那么我只需要读100天, 3.3个月, 1个季节. 似乎花不了我多少时间. 是的!!
遗憾的是, <<c++primer>>我已经读了n个季节. 问自己为什么坚持不了. 好吧, 不像给自己找借口.
既然没有借口, 那么, 我将决定:
我每天至少读1页<<c++primer>>, 至少每天写一段代码, 不论书中代码如何简单或困难, 绝不敷衍!!
不论编程被创造出来的初衷是什么, 但对于吾辈来说, 首先这是一个爱好(借用@秋声赋的词"魔法", 吸引吾辈的还是神乎其技的技艺.); 其次是一个得力助手, 再者每天开着电脑不做点什么就是卑鄙的浪费.
2楼, 内置类型及基本语法的使用.
3楼, C++语法基本规范
4楼, 第一章总结
那么, 就开始吧:
/*额, 在开始之前, 还是推荐大家先看一本书叫<<高质量c++编程指南>>, 这是一本建议程序设计时书写规范的重要性.*/
在1.1章节中,吾辈可以知道为什么会有程序设计这样的东东了. 因为我们不想处理太多繁琐的工作, 不想处理太多复杂的工作, 额, 还有不想有太多太难的工作. 好吧, 就这样开始了.
要发现问题, 分析问题, 解决问题. (额, 我肚子饿了,是因为晚上还没吃吗? 擦 块叫外卖. 好吧, 这可以类比程序设计)
// 1.2 c++程序
// 简单的c++程序
#include <iostream> // 包含输入输出流
using namespace std; // 使用名字空间
char mychar[]="hello world!"; // 定义mychar数组,
void Print(char *p) // 显示mychar内容. 参数p为字符指针
{
cout <<p<<endl; // cout输出流, endl 换行;
}
int main() // main: 主程序入口
{
Print(mychar); // 调用Print
return 0; // 返回值
}
额, 本来巴拉巴拉打了一大堆的文字, 突然脑袋告诉我, 骚年, 文字少一点. 我一想对啊, 书上文字多的是, 啪, 选择+del.
就这样, 我写了一个函数, 利用头文件iostream中的cout在屏幕上输出了一行文字.
而且我知道了:
1. 一个程序有且必须有一个main函数, 它是程序的核心, 没有它, c++程序将无法编译.
2. 定义一个变量的格式:类型 变量名
3. 定义一个函数的格式:返回值类型 函数名( 参数表 ) { 代码 }
4. 代码书写有严格的大小写之分
5. 当然分号是必不可少的结束符号.
6. 还有代码的书写规范, 函数的结构规范, 等等.
我确定, 我已经基本了解了c++代码风格.
////////////////////////////////////////////////
本文提到若干书籍:
C++Primer: 下载地址
高质量C++编程指南: 下载地址
////////////////////////////////////////////////
第二章<<数据类型>>传送门
该贴已经同步到 jains521的微博 本帖最后由 jains521 于 2013-1-10 10:03 编辑
c++中有基本的类型, 这些类型不需要额外添加头文件就可以使用
布尔型(bool), 字符型(char), 整型(int), 单精度浮点型(float), 双精度浮点型(double).
(额,从来没有发现第一章包含了这么多内容.)
还有基本的语法.
if () {} else {}// 判断句
//if后面括号中的表达式是为了判断条件是否为真, 为真就执行紧跟的那条语句.
//表达式为真就是一切非0的值,
//比如"C++?" 是一个非0的值, 从ascii码里可以知道.
// 当然 if( 0 )这个就是假了.将会执行else紧跟的语句,如果有的话.
if( "C++?" )
cout <<"Yes, it's C++!\n";
else
cout <<"Sorry, it will can't display.\n"
for( ; ; ) { ; } //循环
额..上面这个for可以看成是一个无限循环了..
while( ){ ; } //循环
do{ ; } while() //循环
switch{}//选择
以上有总结. 人机交流的一个基本的语法规则跟人际交流的道理,
假设你问你的员工, 你今天的工作完成了吗?
员工回答, 还没有boss.
那么你肯定会说. 那还有空看上网, 快去技术宅顶jains521的帖子. ( 当然了, 哈哈..)
用if语句概括 if( 工作完成 ) { 可以上网; } else { 完成工作; }
其他语言我相信吾辈都能概括.
还有预处理指令.
#include 包含头文件, 头文件的作用是使主程序看起来不至于臃肿, 所以各种实现部分会封装在各种头文件中,
using namespace 名字空间的指定, 简化了库的使用. 使代码更直观.
注释增加了代码的可读性.
/*******************************************
*
* 使用内置类型及基本语法
*
* 模拟算法: 冒泡排序法( 本程序为大数上升, 小数下沉)
*
*/
#include <iostream>
using namespace std;
#define BUBSIZE 10 //泡泡数量
bool CheckBubble(int bubble) // 检查是否已经排序;
{
for(int i=0; i<BUBSIZE; i++)
if(bubble < bubble)
return false;
return true;
}
void Bobbles(int bubble) // 冒泡函数
{
for(int i=0; i<BUBSIZE; i++)
for(int j=i+1; j<BUBSIZE; j++)
if(bubble < bubble) //大数上升, 小数下沉
{
int tmp = bubble;//交换数据
bubble = bubble;
bubble = tmp;
}
}
int main()
{
int bubble={23, 4, 567, 64, 3, 44, 12, 343, 567, 354};
if( !CheckBubble(bubble) )// 检查是否排序, 否就调用冒泡
Bobbles(bubble);
for(int i=0; i<BUBSIZE; i++) //显示排序后的结果.
cout <<bubble<<" ";
cout <<endl;
return 0;
}
以上为校验我的对基础的掌握.使用冒泡排序. 本帖最后由 jains521 于 2013-1-10 11:41 编辑
人机交流的前提, 你说的话电脑能看懂, 电脑反馈的信息你也能明白.
所以先要做的是读懂一段代码. 认识各个元素.
#include <iostream> // 包含头文件,这样我们就可以使用头文件中的功能.
#define BUBSIZE 10 // 定义常量BUBSIZE它的值为10
char mychar[]="Hello world!";// char型数组, 并有一个初始值, 长度为sizeof{ mychar };
int Var( int& );// Var为函数, 它有一个int型参数, 设定为引用传递. 返回值类型是int型. 这个为函数Var的声明, 一般函数的使用都需要声明.
//这里是取var在内存中的地址给指针p, 赋值成功后, 利用指针p可以操作var中的值
int Var( int &var)//Var函数定义部分.
{
for(int i=0; i<10; i++) //for的功能是计算var的10次方. 注意这里的var和上面的var不是同一个变量,
var+=var;
return var;//返回var10次方的值
}
int main()
{
int var=0; //int型变量var的初始值为0, 必须以分号结束var的初始化,
int *p=NULL;//p为int型指针, 指针的值是0, 指针的声明需要一个初始值来防止指针指向任何地方, 这是非常危险的事.
p = &var;//等号左边的为左值, 右边为右值, 等号操作符将右值赋给左值, 这样就完成了赋值操作.
*p = 1;
Var( var );//传递变量var进行计算
std::cout <<var<<std::endl; // 没有声明名字空间就需要显式的指出是哪里的对象, ::是作用域操作符.
return 0;
}
1. 分号, 语句结束的标志. (必须)
2. 逗号, 用于声明多个相同类型的变量, 或表达式中, 表示相同延续.
3.&, 取地址, 引用,取地址一般用于变量给指针赋值, 或者传递变量的指针, 引用多用于函数的参数传递.
4.#, 预处理标志符.
5.{..} 段操作符, 一个语段的范围.
6.(..) 额这个不知道怎么解释. 首先可以看成是函数的标志, 函数需要传递的参数列表, for, if, while 等等的表达式列表.
7. 欢饮补充.. 本帖最后由 jains521 于 2013-1-11 13:16 编辑
c++primer 第一篇简要的介绍了一下c++的语言特点, 及大概的学习历程.
对代码的分析思考, 及解决方案.
各种数据类型, 用于各种数据处理, 文件操作, 程序设计方案.
个人觉得: 对于编程, 首先要先读懂代码, 之后思考代码为何这样设计, 及优缺点.
c++有各种各样的规则, 遵守c++的规则也是一个提升c++能力的一个强力助手.
最后是有良好的代码书写规范,好的规范, 不论于别人或自己, 会有一种高手风( 哈哈, 不只是耍酷 ).
在c++中, 多态和继承占了领导地位, 也是非常需要用心去学的, 这是很难的部分, 掌握了它们, 基本上就掌握了c++的精髓.
以上为个人见解.有不足之处, 欢迎各位指正!
在C++的舞台一起成长吧!!米娜撒 小有理解路过~~~~~~ 雲政 发表于 2013-1-9 22:38 static/image/common/back.gif
小有理解路过~~~~~~
欢饮同学, 一起来学c++ 刚学完C。。。跟着楼主学C++好了~~我用的是Bruce 的Thinking in C++。。。 @@22!! 支持一下 这书很厚啊 看懂了一点 RangerCD 发表于 2013-1-10 21:52 static/image/common/back.gif
刚学完C。。。跟着楼主学C++好了~~我用的是Bruce 的Thinking in C++。。。
c++primer 已经在1楼附加了下载地址. moxiagy 发表于 2013-1-10 22:17 static/image/common/back.gif
支持一下 这书很厚啊
内容丰富, 实例多, 值得一翻. 爱设计爱技术 发表于 2013-1-11 01:57 static/image/common/back.gif
看懂了一点
书吗, 还是 本文 .. jains521 发表于 2013-1-11 12:58 static/image/common/back.gif
c++primer 已经在1楼附加了下载地址.
多谢了~~☆⌒(*^-゜)v RangerCD 发表于 2013-1-11 12:59 static/image/common/back.gif
多谢了~~☆⌒(*^-゜)v
呵呵. 记得think c++以前也看过.. 谢谢分享 看上去好看的样纸 呜咕