tips:当明确知道数值不可能为负的时候,用unsigned类型
使用int执行整数运算,如果超过int,就用long long型
算术表达式中不要用char和bool
执行浮点运算用double
有符号和无符号的类型不能混用
字符串的实际长度比它的内容多一个,但是在用s.length()这个函数,得到的结果就是内容的书目,不用加1.
转义序列:\n换行符,还有泛化转义序列,其形式是\x后紧跟1个或者多个十六进制的数字,或者\后面跟1个2个或3个八进制数字。\x要用到后面所跟的所有数字,太长的话有的可能会报错
变量声明和定义的关系:声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。定义负责创建与名字关联的试题。
如果想生命一个变量而非定义它,就要在变量前添加关键字extern,而且不要显式初始化变量。
extern int i//声明i而非定义i,其他的都是在定义i
变量只能被一次定义,但可以多次声明。
命名规范:
1、体现实际含义
2、变量名一般用小写字母
3、自定义的类名一般以大写字母开头如Sales_item
4、由多个单词组成的话,单词之间应有明显区分,如上面的下划线或者salesItem
#include <iostream>
#include <string>
using namespace std;
int main()
{
int sum=0;
extern int x;//声明非定义
int i=200;
for (int i=0;i<=10;i++)
sum+=i;
cout<<"the sum of 0 to 10 is"<<sum<<endl;
cout<<i<<endl; //输出200,因为第二个i的作用域在for这个循环里,出了这个循环,i就失去了其意义
return 0;
}
对于指针的使用和含义可以有个简单的理解
#include <iostream>
#include <string>
#include "salesitem.h"
using namespace std;
int i=42;
int main()
{
int val=42;
int *p=&val;
cout<<*p<<endl;
*p=0;
cout<<*p<<endl;
return 0;
}
空指针的话,c++11新标准有一个nullptr这样的常量
int *p=nullptr;
或者可以int *p=0;
指针要分清楚是改变了指针所指的对象的值还是改变了指针指向的位置。