学习程序语言第一件事,通常就是先做个简单的实例,从头到尾运行下,了解一些基本数据类型,变量的流程和控制语法。
一、数据类型与变量
我们先做一个“Hello world”吧,然后再了解C++的数据类型。
1.1 Hello World!
废话不多说,先来看看如何使用C++来编写一个简单的程序,这里我是在linux ubuntu下进行编辑并且编译的:
ok,代码编辑完成,我们来编译下,linux下是使用g++来编译
root@jay:/home/jay/c++/1# g++ -o hello hello.cpp
然后来执行下,看下结果:
root@jay:/home/jay/c++/1# ./hello
Hello World!
This is Jay Zhang!
zhangjie201412@live.com
大家看到程序应该会比较关注前面两行,
其他的跟C语言差不多,#include是一个宏(mocro)预编译处理器指令(preprocessor directive),他告诉编译器这个程序要用到的头文件,所以在这个程序中就可以换用到这个头文件中包含的一些函数(function)与类(class or struct);
第二行是一个新程序的标头写法,using知名表示使用名称空间(namespace)std下的名称。
还可以在C++中使用C语言中的一些库,只要把之前的写法这样改:match.h -> cmath,但是这种库的混用是不建议的。
ok,main函数中的三行cout语句很简单,与C语言中的printf类似,不过用法比较简单,这里就不多说了。
1.2 C++中的数据类型
程序在执行过程中,需要运算许多的数据,也需要存储许多的数据,数据是存储在内存空间的,由于各数据的类型不同,在存储时所需的容量也不同,不同的数据类型给予不同的存储空间来存储,因而有了数据类型(data type)。
在C++中基本的数据类型主要有:整数(integer),浮点数(float),字符(character)而这些又可以进行细分:
整数
用来表示整数值,可分为shot、int与long,可容纳的大小不相同,shot的长度为半个word,int表示一个word,而long表示一个或者2个word,在32位机器上面int与long的程度通常是相同的,长度越长表示的整数值范围越大。
浮点数
用来表示小数值,可以区分为float、double与long double,float的长度为一个word,double为2个word,long double长度为3或者4个word。
字符
用来存储字符,长度为一个字符,字符编码主要依据ASCII表而来,由于字符占得空间比较小,所以可以用来存储较小范围的整数
以上的数据类型在memory中占有的大小跟CPU有关,在这里给个例子,它可以告诉你确切占用的大小。
我们使用sizeof这个函数来取得数据类型的大小,执行下程序:
data type size(bytes)
int 4
long 4
float 4
double 8
char 1
看到如上结果,CPU平台不同执行的结果会不同,如上例中整数int的内存空间是4个字节,所以他可以存储的整数范围是-2147483648到2147483647,如果存储值超过这个范围的话称为溢出值(Overflow),会造成不可预计的结果。
整数计算范围的方式很简单,例如int占据4个字节的话,可存储范围为2^32/2,除以2是因为要分一半给负值,其他类似。
C++中还有bool类型,用来便是布尔数,在程序中占一个bit,用以使用true和false常量来表示,可以使用上面的例子来测试bool类型数据占用的存储空间。
1.3 数字常量
我们可以再程序中写下1、10、678这样的数值,这些数值称为(liternal constant),预设程序中如果写下一个整数值,例如1这个数值的话,定义为int类型的无正负号的数值,而如果在程序中写下1.0,3.14等小数时,定义为double类型的数值。
整数数字常量可以用8进制,十进制,十六进制数来表示,一般习惯使用十进制,如果我们用八进制的数字常量,开头加上0就可以了,如果要使用十六进制的字面常量,开头加上0x,例如下面的程序:
由于cout输出整数值时,都会以10进制显示,所以上面的程序中三行都会显示26。
我们可以再整数值以后加上L或者l,表示该整数值要是long类型,因为l容易与数字1搞混,通常使用L,我们也可以指定为无符号整数,可使用U或者u来指定。
下表列出常用的escape sequence:
escape sequence |
說明 |
\n |
換行、新行(newline) |
\t |
水平定位點(horizontal tab) |
\v |
垂直定位點(vertical tab) |
\b |
退回一格(backspace) |
\r |
返回(carriage return) |
\f |
換頁(formfeed) |
\a |
嗶聲(alert bell) |
\\ |
倒斜線(backslash) |
\? |
問號 |
\' |
單引號 |
\" |
雙引號 |
1.4 变量
数字常量 存储在内存中,并与一个数据类型相关系,现在的问题是如果我们要将一个数值存储在内存中,并在之后取回这个数值来使用,那我们要怎么去最呢?显然我们无法取得刚才写下的那个数值,因为没有任何关于关于那个数值的存储地址的信息。
变量(variable)提供一个有名字的存储空间大小:变量本身的值是指存储在内存中的某个数值,我们可以透过变量的名称来取得这个数值,这个数值又被称为rvalue或者read value,而变量的地址值是指这个数值存储在内存中的地址,变量本身又被称为lvalue或者location value。
在C++中药使用变量,必须先声明变量的名称和数据类型,例如
int num;
double num2;
如上面的例子,我们使用int、float等关键字来声明变量数名称并且指定变量的数据类型,变量在命名时有一些规则,真不可以用数字作为关键字开沟,也不可以使用一些特殊字符,而且不可以喝C++中的关键字同名。
变量的命名风格我觉得因人而异,自己习惯就好。
下面还是来举个例子吧:
在程序中第一次只是声明了变量并没有给赋值,所以打印出来的是随机数。
也可以使用如下的方法声明,此方法会调用构造函数,所以变量会被初始化为0:
int age = int();
。。。
1.5 终端的输入输出
终端的输入输出我认为只是用来做调试的,这部分很简单,比C语言中的printf简单多了,大家可以自行练习。
未完待续。
分享到:
相关推荐
UE4学习笔记----使用C++之快速入门(二)源代码
适用人群:C++初学者及C++期末考试冲刺 此C++学习笔记是本人在学习中思考总结所得,能够很好地帮助你入门C++或冲刺期末考试,让你掌握C++基础。
《c++基础入门学习笔记》
这个是有关C++的学习笔记,便于快速入门
自己数组学习的笔记,把数组总结了一下,希望对入门学C++的同学有一定的作用,大神就不必看了,刚刚开始学
嵌入式开发学习笔记 ( java - c/c++ :从入门到入门 ) 叙述了我从小白到入门过程中遇到的问题以及解决方法(2018更新版)。
学习笔记;及相关学习资料推荐。C++ 入门 -- 什么是 C++ | |- C++ 的历史年鉴大事记 | |- C++ 的特点, 包括相关大师级人物的访谈录 | |- C++ 的学习书籍 -- 书籍信息 + 阅读心得 + 讨论代码 | |- C++ 的开发...
刚入门学习C++,跟随b站黑马程序员学习,自己记录的一些小笔记。后面会根据学习继续慢慢更新!
c++语言最详细入门0基础学习笔记,只要掌握基本c语言知识就可入门,章节层次清晰,语法及示例全面地讲解
最详细的c++入门,核心,提高讲义笔记,看会成为大佬没问题,下载后有疑问请私信。
有C++基础,想学习数据科学相关知识的程序员。文中具体的代码示例可以帮助理解数据处理方法。 能学到什么: 通过学习可以掌握在C++中进行数据文件操作、数据清洗、存储管理和统计计算等与数据分析密切相关的编程技能...
opencv入门学习文档,是根据个人学习记录的笔记总计三百多页,内含书签,文档简洁适合快速入门,了解图像处理,视频跟踪,神经网络等概念和基本原理,以及人脸识别案例在Opencv中的实现,内含了C++实现源代码。
现在java家族已经十分强大,每个分支都成为一门学问了,例如web前台开发用的applet,后台要用的servlet;做企业系统,EJB;消息中间件JMS;手机j2me开发手机、数字家电,这也是当初设计java的。
本人学习笔记,从基础逐步深入,其中还包括内存、指针、等内容,很适合c++程序员使用
学习C++必经之路,入门级知识总结,笔记本知识概况,走一步再走一步
[C++入门到精通视频]学习笔记.pdf
C++_Primer_中文版的学习笔记,C++_Primer全面介绍了 C++ 语言。作为一本入门书(Primer),它以教程的形式对 C++ 语言进行清晰的讲解,并辅以丰富的示例和各种学习辅助手段。
匠心精作C++从0到1入门编程-学习编程不再难资料、笔记,和匠心精作C++从0到1入门编程-学习编程不再难视频配套。
C++编程语言的基础入门学习笔记,涉及C++语言的数据类型 、运算符、程序运行流程、数组、函数、指针和结构体的相关知识点。适合零基础学习。