jains521 发表于 2013-1-9 21:44:48

一起来读<<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-9 21:45:56

本帖最后由 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-9 21:46:04

本帖最后由 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-9 21:46:09

本帖最后由 jains521 于 2013-1-11 13:16 编辑

c++primer 第一篇简要的介绍了一下c++的语言特点, 及大概的学习历程.

对代码的分析思考, 及解决方案.

各种数据类型, 用于各种数据处理, 文件操作, 程序设计方案.

个人觉得: 对于编程, 首先要先读懂代码, 之后思考代码为何这样设计, 及优缺点.
c++有各种各样的规则, 遵守c++的规则也是一个提升c++能力的一个强力助手.
最后是有良好的代码书写规范,好的规范, 不论于别人或自己, 会有一种高手风( 哈哈, 不只是耍酷 ).

在c++中, 多态和继承占了领导地位, 也是非常需要用心去学的, 这是很难的部分, 掌握了它们, 基本上就掌握了c++的精髓.

以上为个人见解.有不足之处, 欢迎各位指正!

在C++的舞台一起成长吧!!米娜撒

雲政 发表于 2013-1-9 22:38:07

小有理解路过~~~~~~

jains521 发表于 2013-1-10 11:27:31

雲政 发表于 2013-1-9 22:38 static/image/common/back.gif
小有理解路过~~~~~~

欢饮同学, 一起来学c++

RangerCD 发表于 2013-1-10 21:52:35

刚学完C。。。跟着楼主学C++好了~~我用的是Bruce 的Thinking in C++。。。

moxiagy 发表于 2013-1-10 22:17:06

@@22!! 支持一下 这书很厚啊

爱设计爱技术 发表于 2013-1-11 01:57:42

看懂了一点

jains521 发表于 2013-1-11 12:58:20

RangerCD 发表于 2013-1-10 21:52 static/image/common/back.gif
刚学完C。。。跟着楼主学C++好了~~我用的是Bruce 的Thinking in C++。。。

c++primer 已经在1楼附加了下载地址.

jains521 发表于 2013-1-11 12:58:48

moxiagy 发表于 2013-1-10 22:17 static/image/common/back.gif
支持一下 这书很厚啊

内容丰富, 实例多, 值得一翻.

jains521 发表于 2013-1-11 12:59:18

爱设计爱技术 发表于 2013-1-11 01:57 static/image/common/back.gif
看懂了一点

书吗, 还是 本文 ..

RangerCD 发表于 2013-1-11 12:59:43

jains521 发表于 2013-1-11 12:58 static/image/common/back.gif
c++primer 已经在1楼附加了下载地址.

多谢了~~☆⌒(*^-゜)v

jains521 发表于 2013-1-11 13:07:38

RangerCD 发表于 2013-1-11 12:59 static/image/common/back.gif
多谢了~~☆⌒(*^-゜)v

呵呵. 记得think c++以前也看过..

一哋饬痕 发表于 2013-1-11 13:09:10

谢谢分享 看上去好看的样纸 呜咕
页: [1] 2 3 4
查看完整版本: 一起来读<<c++primer>>__基础篇__