C++快速入门、变量、基本类型

整理看书过程中要注意的点

1、每个函数都必须指定返回类型,main函数的返回类型为int,通常return 0;,return 语句后面要增加“;”

2、C++文件后缀:cc,cpp,cxx,cp,c,visual C++认 *.cpp

3、输入输出使用iostream库,用cin, cout, cerr, clog,这些都包含在std  namespace中

若在文件的开头没有写using namespace std,则用的时候应该是std :: cin

4、建立Visual C++ 工程文件时,选 win32 console application

5、在新的编译器中,在for中定义并初始化的变量,在退出for之后不能再次使用

6、wchar_t(16位)用于拓展字符,如中文、日文

7、short 16位,半个机器字长

int     16位,1个机器字长

在32位系统中,int 和 long有时字长是相同。

8、int 、short、long默认带符号位

不需要带符号需增加unsigned前缀

若仅写unsigned类型,则认为是 unsigned int

9、把-1赋值给unsigned char 类型的数,=255

-1=-1*256+255

C++对溢出的数求模取余

10、float 用32位描述,但只有6个有效位

double用64位描述,有10个有效位

long double 用96或128位描述,有10个有效位

11、以0(零)开头的数字常表示8进制

0x开头的数字常表示16进制

12、指定LONG类型可以在数字后面增加”L“,无符号可以加”u“,float可以加"F",

采用科学计数法时,用E或e表示

在字符面前增加L就能得到wchar_t类型的宽字符面值,如L’a‘

13、为兼容C,C++的string类型的字符串,在字符串的最后会增加一个空字符

如‘A’,是1个字符

“A”,是1个字符A加1个空字符

L“A”,宽字符串

14、两个相邻的字符串(或者两个宽字符串:注,一定要相同类型)或宽字符串,中间如果是空格、制表符、换行符,则分行撰写可以形成一行,如

std::cout<<"I"

“The”

"world"<<std::endl;

将输出 I The world的结果

15、多行面值,可以用反斜杠操作,可将下一行当同一行处理,反斜杠后不能加任何字符,反斜杠的下一行不允许有其他无关字符。

std::cou\

t<<"Hi"<<st\

d::endl

16、回车和换行转义符号的区别

‘\r‘是回车,前者使光标到行首,(carriage return)

‘\n‘是换行,后者使光标下移一格,(line feed)

\r 是回车,return
\n 是换行,newline
对于换行这个动作,unix下一般只有一个0x0A表示换行("\n"),windows下一般都是0x0D和0x0A两个字符("\r\n"),苹果机(MAC OS系统)则采用回车符CR表示下一行(\r)

Unix系统里,每行结尾只有“<换行>”,即“\n”;
Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”,即“\r”。
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾会多车一个^M字符。 写不同的系统代码,要根据系统的要求来编写代码。
第17~24 讲解了变量的初始化方法,变量名的同义定义,常量的定义方法,类型的同义定义,枚举类型的使用,这些在32位嵌入式芯片的程序设计中都是基础中的基础,一定要牢牢掌握,后续再抽空撰写32位内核芯片的常见定义以及相关说明的解读。
17、初始化

直接初始化:

int ival(1024);

复制初始化:

int ival=1024;

直接初始化语法更灵活,效率更高。

在C++中,可以用前面已初始化的变量,初始化下一个变量,如

int a=12,b(a+1);

18、类中,定义如何进行初始化的成员函数称为构造函数。一个类可以定义几个构造函数。当类里面没有构造函数时,则会自动调用默认的构造函数。

初始化一个字符串的三种方法

std::string title="C++ plus";

std::string title2("C++ plus");

也可以通过1个计数器和一个字符初始化string对象

std::string title3(10,‘9‘);  //title3=9999999999

19、定义,分配空间和初始值

声明,讲明类型和名字

一个变量只有1个定义,但可以有多个声明(不包含带初始化情况的声明),声明通常配合extern进行

extern表明变量在别处已经定义过。

任何在多个文件中使用的变量都需要有与定义分离的声明,在这种情况下,一个文件含有变量的定义,使用该变量的其他文件则包含该变量的声明。

20、const 把一个对象转换成一个常量,常量在定义后不能修改,所以定义时必须初始化。

例如:

const int bufSize = 512;

21、const 默认为文件的局部变量,所以在其他文件中要使用时,需增加extern 声明。

22、引用,对象的另外一个名字,定义的时候要增加&

在汇编程序中,相当于2个变量EQU同一个寄存器,无论哪个变量名去操作,寄存器的值都会发生变化

int ival = 1024;

int &refval= ival; //引用的定义

refval++

std::cout<<ival;  //输出的结果为1025

在常数的定义中,也存在类似的用法,例如,

const int ival=1024;

const int &kval = ival;

23、typedef,定义数据类型的同义词。可以起到隐藏特定类型的目的,同时也使人更容易理解。

typedef double wag;

typedef wag salary;   //salary 实际就是double类型

24、枚举类型(关键字:enum)

默认枚举的第一个成员为0,也可以初始化第一个,后面依次+1,例如:

enum form{shape=1,sphere,cylinder,polygon};

但是,枚举的值又不是唯一的,例如

enum point{point2d = 2, point2w ,point3d = 3, point3w}; // point2w = 3; point3w = 4;

point  pt1 = point2d;

注意:不能用int的定义,例如: point  pt1 = 2;

25、类类型

类的定义以class关键字开始,包含接口(操作:成员函数)和实现(数据:数据成员)两部分;

class Sales_item{

public:

private:

std::string isbn;

unsigned units_sold;

double revenue;

};// “;”号是最容易被遗忘的部分

类可以包含0到多个public或private,每一个类就是一种新的类型。

类的数据成员不是在初始化时定义,而是通过构造函数。

不是类的组成部分的代码,不能访问private 成员,这样可以保护类中的数据成员。

26、struct 关键字(主要从C语言中继承过来)  ——在32位芯片程序的开发中常用到,在C语言中struct中不放成员函数,这一点与C++有很大的区别。而在硬件的底层编程中,主要使用C语言类型的结构体,所以要关注这点。

struct中,未使用private部分默认为public;

class中,未使用public部分默认为private;

27、设计自己的头文件

因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义,#ifndef 只能保证在同一个文件中,相同的头文件段值包含一次;若同一个工程文件中的多个文件均有多个变量的定义,则编译的过程会报错。

但是有三个例外:

① 类; ② const 对象; ③ inline 函数

使用头文件的格式有两种:

#include <iostream>//在指定的目录查找标准的头文件

#include"iostream.h"//在源目录查找【工程文件所在的目录】

28、预处理器

预处理器变量的名字在程序中必须唯一,否则其他重复的地方都将关联到预处理器变量

为了避免名字冲突,预处理器变量通常用大写字母

格式:

#ifndef  SALESITEM_H

#defineSALESITEM_H

#endif       //结束预定义处理

原文地址:https://www.cnblogs.com/lnleelove/p/9751780.html

时间: 2024-10-11 01:12:36

C++快速入门、变量、基本类型的相关文章

Swift快速入门之延迟调用与范型

defer defer 就像当于其它语言中的final代码块,它在函数中所有其它代码之后,函数返回之前运行.不论函数有没有抛出错误,它的代码都能运行.如下: var fridgeIsOpen = false let fridgeContent = ["milk", "eggs", "leftovers"] func fridgeContains(itemName: String ) -> Bool { fridgeIsOpen = true

C# for Unity快速入门(连载14)_C#枚举类型

C# for Unity编程语言快速入门教程(连载14)_C#枚举类型 C#的枚举类型(用 "enum"关键字标识),按照笔者理解本质上是一个隐式继承了System.Enum的整形类.枚举类型的主要作用是:为了更好的识别一个变量的具体含义,且固定变量的使用"范围". 例如:形如如下定义 public enum Week{   Monday,  Tuesday,  Wenesday,  Thursday,  Friday,  Saterday,  Sunday }  

Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量

大家在中学就已经学过变量的概念了.例如:我们令 x = 100,则可以推出 x*2 = 200 试试下面这段 Python 代码 1 import turtle 2 3 turtle.shape("turtle") 4 x = 100 5 turtle.forward(x) 6 turtle.left(45) 7 turtle.forward(2*x) 8 9 turtle.exitonclick() 运行上面的代码,小海龟将画出下面的图案 x = 100 声明了变量 x,并将它赋值为

shell变量快速入门

临时变量开启新的sh,临时变量不存在 在shell脚本运行时,会先查找系统环境变量ENV该变量指定了环境文件(加载顺序通常是/etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc) 实现变量局部生效 编辑用户变量文件立即生效命令开启新的sh,变量存在 切换普通用户,变量不存在实现/mnt下脚本直接执行编辑用户变量文件显示PATH环境变量实现变量全局生效编辑系统变量文件 立即生效命令切换普通用户,变量存在. 双引号:所见非所得,它会先把变量解析之后,再

bash编程快速入门

首先,我们简单的介绍一下bash,bash是GNU计划编写的Unixshell,它是许多Linux平台上的内定shell,它提供了用户与系统的很好的交互,对于系统运维人员,bash的地位是举足轻重的,bash编程能很快处理日常的任务 bash入门,一个最简单的bash例子 #vim hello.sh #!/bin/bash #This is the first example of the bash #echo "Hello world" 下面,我们就这个简单的bash 脚本来介绍一下

定时器(Quartz)快速入门

Quartz概述 Quartz中的触发器 Quartz中提供了两种触发器,分别是CronTrigger和SimpleTrigger. SimpleTrigger 每 隔若干毫秒来触发纳入进度的任务.因此,对于夏令时来说,根本不需要做任何特殊的处理来"保持进度".它只是简单地保持每隔若干毫秒来触发一次,无论你的 SimpleTrigger每隔10秒触发一次还是每隔15分钟触发一次,还是每隔24小时触发一次. CronTrigger 在特定"格林日历"时刻触发纳入进程的

[.net 面向对象程序设计进阶] (5) Lamda表达式(二) 表达式树快速入门

[.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习表达式在程序设计中的优点:比如构造动态查询.动态构造表达式树完成未知对象属性访问,比反射的性能高出很多.我们可以说表达式树才是Lambda的精髓,是我们必须要熟练掌握并灵活运用的. 1.关于表达式树(Expression Tree) 表达式树以树形数据结构表示代码,其中每一个节点都是一种表达式,比如

Spring MVC 教程,快速入门,深入分析

资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客:http://elf8848.iteye.com 目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如j

C++ Primer Study Note 系列[1]-chapter1快速入门

I want to study it all the time , and now I am ready to study this book in the next mouth. Time : 2014/07/02 先看一个程序体验一下: #include <iostream> int main() {     /*This is a test example*/     std::cout << "Enter two numbers:" << s

Yacc 与 Lex 快速入门

Yacc 与 Lex 快速入门 Lex 与 Yacc 介绍 Lex 和 Yacc 是 UNIX 两个非常重要的.功能强大的工具.事实上,如果你熟练掌握 Lex 和 Yacc 的话,它们的强大功能使创建 FORTRAN 和 C 的编译器如同儿戏.Ashish Bansal 为您详细的讨论了编写自己的语言和编译器所用到的这两种工具,包括常规表达式.声明.匹配模式.变量.Yacc 语法和解析器代码.最后,他解释了怎样把 Lex 和 Yacc 结合起来. 5 评论 Ashish Bansal ([ema