int型:绝对值在10^9范围内的整数都可以定义为int型

long long 型:如果long long型赋值大于2^23-1的初值,需要在初值后面加LL,否则会编译错误。

float,double输入输出格式:使用printf(“%f”,c)语句时,%f是float和double型的输出格式。而在使用scanf输入时,float输入格式是%f,double输入格式是%lf。

if条件句:if(n)表示if(n==1),if(!n)表示if(n==0)

for语句:在c中不允许for(A:B:C)语句的表达式A中定义变量(int a = 0是不允许的),C++中可以。

数组定义:如果数字大小较大(10^6)以上,则需要将其定义在主函数外面,否则会使程序异常退出。

数组赋初值:如果我们定义了有个数组arr[10]={12,1,6,4},可知只对数组的前四项赋值,那么后面没有赋值的元素都默认为0,但如果该数组没有赋赋值,数组中每一个元素都默认为一个随机数(不一定是0):

1)    int arr[10] = {};

2)    int arr[10] = {0};

3)    memset函数:memset(arr,0,sizeof(arr));//memset按字节赋值,头文件string.h

4)    fill函数:fill(array,array+5,8);//array[0]~arr[4]均被赋值为8,头文件algorithm

  1. 二维数组赋值:若二位数组array[4][5] = {{1,2,3,4,5},{2,2,3},{},{4,2,3,5}};//第三行用{}跳过了,如果不加大括号是无法通过编译的。
  2. 字符数组初始化:字符数组可以通过直接赋值字符串来初始化(仅限初始化,程序其他位置不允许这样直接赋值整个字符串)

10.字符串数组的输入和输出:定义char str[10],scanf(“%s”,str); printf(“%s”,str),字符数组在输入时不需要加&取地址运算符,且scanf输入时%s通过空格或换行来识别一个字符串的结束。

gets用来输入一行字符,gets识别换行符\n作为结束标识,因为scanf完一个整数如果用用到gets,需要先用getchar接受整数后面的空格或者换行符,puts输出一行字符后会紧跟着一个换行(\n)

11.字符数组长度的重要性:字符数组的长度一定要比实际存储字符串的长度至少多1,作为结束符’\0’,int型不需要,且如果不是使用scanf的函数%s格式或gets函数函数输入字符串,一定要手动输入的在每个字符串后加’\0’,否则printf和puts输出字符串将无法识别字符串末尾而输出一大堆乱码。

12.sscanf和sprintf:

1)        sscanf:int n;char str[10] = “123”;sscanf(str,”%d”,&n); //sscanf写法的作用是把字符串数组str的内容以”%d”的格式写到n中,从左到右,sscanf还支持正则表达式

2)        spintf:int n;char str[10] = “123”;sprintf(str,”%d”,n); //sprint的作用是把n以”%d”的格式写到str字符数组中,从右到左

13.引用&:引用不产生副本,而是给原变量起一个别名,由于引用是产生变量的别名,因此常量不可以使用引用。

#include<iostream>
using namespace std;
void swap(int* &p1,int* &p2){
int *temp = p1;
p1 = p2;
p2 = temp;
} int main(){
int a = ,b = ;
int *p1 = &a,*p2 = &b;
swap(p1,p2);
cout << a << "," << b << endl;
cout << *p2 << "," << *p1 <<endl;
return ;
}

其中不可以直接写成swap(&a,&b),必须使用指针变量p1和p2存放&a,&b,然后把指针变量作为参数传入。

14.访问结构体内的元素:

struct studentInfo{
int id;
char name[];
studentInfo* next;
}stu,*p;

于是访问stu中变量的写法:

stu.id;stu.name;stu.next;

访问指针变量p的元素写法:

(*p).id  <==> p->id

(*p).name < == > p->name;

(*p).next < ==> p->next

15.结构体的初始化:

struct studentInfo{
int id;
char gender;
//默认构造函数
studentInfo(){};
//有参构造函数,注意变量名不要与已有变量名重复
studentInfo(int _id){
id = _id;
}
//简化的有参构造函数
studentInfo(int _id,char _gender):id(_id),gender(_gender){}
};

C/C++入门易错点及常用小技巧的更多相关文章

  1. Matlab常用小技巧及部分快捷键

    Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是 ...

  2. javascript的40个网页常用小技巧

    下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...

  3. 今天整理了几个在使用python进行数据分析的常用小技巧、命令。

    提高Python数据分析速度的八个小技巧 01 使用Pandas Profiling预览数据 这个神器我们在之前的文章中就详细讲过,使用Pandas Profiling可以在进行数据分析之前对数据进行 ...

  4. HBase Shell Get 操作常用小技巧

    在工作中,有时候只是想简单看下HBase表某些关键指标的值,这个时候总不能现写Java代码去查看,以下几个小技巧你可能会经常用到. 1. 某行有许多列,只想获取指定2~3列的数据 hbase> ...

  5. Python入门---易错已错易混淆----知识点

    1.not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 结果会输出啥? 根据优先级:(not 1) or (0 and 1) or (3 a ...

  6. Vim新手入门资料和一些Vim实用小技巧

    一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为阿里巴巴高级技术专 ...

  7. Visual Studio常用小技巧一:代码段+快捷键+插件=效率

    用了visual studio 5年多,也该给自己做下备忘录了.每次进新的组换新的电脑,安装自己熟悉的环境又得重新配置,不做些备忘老会忘记一些东西.工具用的好,效率自然翻倍. 1,代码段 在Visua ...

  8. Android 开发中常用小技巧

    TextView中的getTextSize返回值是以像素(px)为单位的, 而setTextSize()是以sp为单位的. 所以如果直接用返回的值来设置会出错,解决办法是 用setTextSize() ...

  9. Eclipse&STS常用小技巧

    开发是经常用到的代码可进行快捷提示,比如mian alt+/就提示出了main方法是不是很方便,为什么就能提示出来呢? 马上来了: 在你使用的java开发工具中点击Window--->Prefe ...

随机推荐

  1. myeclipse快捷键记忆

    提示 Alt+?自动排版 Ctrl+shift+f自动添加引入包 Ctrl+shift+O切换窗口 Ctrl+F6自动添加set get方法 Alt+shift+s r 查看都是哪里调用了该方法 Ct ...

  2. IE6,7,8在boostrap中兼容h5和css3

    IE6.7.8版本(IE9以下版本)浏览器兼容html5新增的标签,引入下面代码文件即可: <script src="https://oss.maxcdn.com/libs/html5 ...

  3. HDU 2159 FATE (二维背包)

    题意:中文题. 析:dp[i][j] 已经杀了 i 个怪兽,已经用了 j 体积,所能获得的最大经验值,这个和一维的差不多,只是加一维而已. 代码如下: #pragma comment(linker, ...

  4. 《深入理解Elasticsearch》README

    书目 <深入理解ElasticSearch>拉斐尔·酷奇,马雷克·罗戈任斯基[著]张世武,余洪森,商旦[译] 机械工业出版社,2016.1 本系列包括以下8篇笔记 第01章 Elastic ...

  5. 编写高质量代码改善C#程序的157个建议——建议102:区分接口和抽象类的应用场合

    建议102:区分接口和抽象类的应用场合 接口和抽象类有一些显而易见的区别: 接口支持多继承,抽象类则不能. 接口可以包含方法.属性.索引器.事件的签名,但不能有实现,抽象类则可以. 接口在增加新方法后 ...

  6. Sublime Text3下载激活汉化

    一.下载 Sublime Text3下载 http://www.sublimetext.com/3 选择对应的版本下载即可. 二.激活 2.1 官网购买license key激活 2.2 网上查找各种 ...

  7. Delphi 按Esc快捷键退出程序的简单方法

     第一种方法: 在窗体上放一个按钮: 1>.设置按钮的Cancel属性为True: 2>.在按钮的点击事件中写: procedure TForm1.btn1Click(Sender: TO ...

  8. 【C#】泛型

    泛型是一个非常有用的技术,在博客园里面有太多说到泛型的好文章,这里我推荐一篇我个人觉得非常全面,也非常齐全的文章. (重造轮子很傻!!!) C# -- 泛型(1) C# -- 泛型(2) C# -- ...

  9. jQuery基础入门

    一.什么是 jQuery Jquery它是javascript的一个轻量级框架,对javascript进行封装,它提供了很多方便的选择器.供你快速定位到需要操作的元素上面去.还提供了很多便捷的方法. ...

  10. redis 映射数据结构粗略

    [字符串] sds结构,simple dynamic string.是redis底层字符串实现,结构为: typedef char *sds; struct sdshdr { // buf 已占用长度 ...