C/C++
C语言和C++的语法总结
浪客小子
这个作者很懒,什么都没留下…
展开
-
C语言+数据结构总结
一、C语言部分1、数据类型:Int 整形 4字节Short 短整形 2字节Long 长整形 4字节Float 单精度浮点型 4字节Double 双精度浮点型 8字节Char 字符型 1字节2、变量(1)全局变量:作用于全局的变量。即...原创 2019-09-12 18:07:57 · 634 阅读 · 0 评论 -
三种循环及break、continue的区别及用法
三种循环及break、continue循环,就是指某些语句重复多次执行,循环语句就是循环指令,能进入循环就能跳出循环,C语言中用到的循环有while、do…while和for三种,跳出循环语句有break和continue两种,这些语句各有特点。While:其功能为当循环条件表达式为真时就执行循环体语句,反之跳出循环。其先判断条件表达式,在执行循环体语句。While循环用于较为广泛,多用于多种...原创 2019-03-30 21:35:52 · 1635 阅读 · 0 评论 -
C语言操作符总结
c语言操作符有算数操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符等。一、算数操作符:+ - / %1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数2.对于/操作符,如果两个数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法2.%操作符的两个操作数必须为整数,返回的是整除之的余数二、移位操作符 <<1.左移...原创 2019-04-10 18:00:59 · 67 阅读 · 0 评论 -
i++和++i
二者在本质上的区别还是很大的,但也只用于一些情况而已I++,表示变量i先用此时的数据时,用完之后自行加1,而++i表示在用变量i之前先将此时的i值加1,然后再用。所以++i比i++的效率高些,要使i自加到某一值时,++i要快些。考虑到i+1的顺序一般用于特定情况,例如printf(“%d”,i++);就是说i++或++i不是成一句单独语句的时候。在i++或++i成单独语句时,都表示i=i+1,...原创 2019-04-14 11:40:29 · 148 阅读 · 0 评论 -
C++总结篇(5)vector
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。Vector迭代器:begin+end: begin获取第一个位置的迭代器,end获取最后一个数据下一个位置的迭代器。rbegin+rend: rb...原创 2019-10-20 13:09:40 · 197 阅读 · 0 评论 -
C++总结篇(3)String类
string是表示字符串的字符串类,该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。string在底层实际是:basic_string模板类的别名,typedef basic_string<char, char_traits, allocator> string。不能操作多字节或者变长字符的序列。 在使用string类时,必须包含#include头文...原创 2019-10-15 23:50:43 · 127 阅读 · 0 评论 -
C++总结篇(4)内存管理
C语言中用malloc/realloc/calloc/free进行空间的申请与释放,在C++中用新的方式进行空间的申请与释放。申请一个int型的空间并释放 C语言:int ptr=(int)malloc(sizeof(int));free(ptr); C++: int ptr= new int;delete ptr; C++的申请方式更为简洁方便,而且不会出现申请空间失败的情...原创 2019-10-15 23:45:26 · 101 阅读 · 0 评论 -
再谈指针
C语言为什么高效?因为C语言有指针。指针是C语言的精华,同时也是C语言的难点,很多人一学到指针就表示头大,指针的指向往往把人搞得晕头转向,甚至有的人为了避免使用指针居然不惜多写几十行代码,无疑增加了工程量,也降低了效率。那么指针到底是什么呢?又该怎么理解呢?这里我们先说说数据的存储。在计算机中,数据存储的位置有两个,一个是硬盘,一个是内存,计算机一系列操作都是在内存上进行的。在写C语言程序时,所...原创 2019-09-25 01:34:04 · 128 阅读 · 0 评论 -
C++总结篇(2)类和对象
1、类2.1类的定义:C++是一门面向对象的语言,便就引入了类的概念,类在一定程度上与C语言中的结构体很相似。Class为定义类的关键字,如下示例:class student{char name[10];int age;int print();};类不仅可以用class来定义,还可以用struct定义,因为C++完全包含C语言,二者不同的是,再类中没有访问限定时,class默认...原创 2019-09-23 18:59:05 · 208 阅读 · 0 评论 -
C++总结篇(1)命名空间及引用
1、命名空间1.1概念:用我自己的话说就是规定一个空间,在该空间内定义的变量和函数只限于在该空间内使用,在该空间外无法直接调用。需要调用须加域名,这也就使得避免了同名变量或者函数引起的冲突。1.2命名空间定义:定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名 空间的成员。1.3示例:#includeusing namespace ...原创 2019-09-23 00:38:29 · 349 阅读 · 0 评论 -
malloc动态内存分配
运用动态内存分配可以有效解决定义的数组或者结构体大小不够用的情况,动态内存分配就是人为的向系统申请一个指定大小的空间用来存放临时数据。在c语言中,一些可控或者说是一些小数据下,可以人为定义一些变量用来存放数据,在函数结束时释放掉,看起来很方便,其实很受限制,在一些不可控或者是大数据下的情况,我们无法得知我们需要多大的容量来存放他们,我们可以举个例子,一个电话簿中,一个联系人就是一个结构体变量,用来...原创 2019-06-14 15:23:47 · 279 阅读 · 0 评论 -
关于二维数组取地址加以或减一解引用问题
int main(){int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int *ptr1 = (int *)(&aa + 1);int *ptr2 = (int )((aa + 1));printf("%d,%d", *(ptr1 - 1), *(ptr2 - 1));system(“pause”);return 0;}很...原创 2019-05-23 13:19:12 · 1809 阅读 · 0 评论 -
关于数组首地址a、a+1、a[0]、&a[0]+1、*a、*&a、a+0的解析
有一个数组:Int a[]={1,2,3,4};例如,sizeof(a),很明显它的结果是16,这个a就表示的是整个数组的大小,那么有a+1:表示数组a的第二个元素即a[1]的地址a+0: a[0]的地址a[0]: a[0]的地址&a+1: 下一个数组的地址&a[0]+1: a[1]的地址*a: a[0]的大小...原创 2019-05-14 18:14:06 · 2881 阅读 · 0 评论 -
Unsigned 陷阱
unsigned是整形的一种类型,表示无符号,一般用于unsigned int和unsigned char,如果没有理解unsigned的意义将会在做题中掉入陷阱,下面通过介绍几个例子来说明:1、int main(){unsigned int i;for (i = 10;i >= 0; i–){printf(“你好\n”);}return 0;}这个程序,...原创 2019-04-21 13:26:07 · 223 阅读 · 0 评论 -
负数在计算机中如何表示?
取一个负数如-5,其原码就是其绝对值5的原码,但最高位为1,(负数最高位为1,正数最高位为0),其反码就是对原码取反(最高位不参与取反),补码就是对反码+1,最终在计算机上显示的是补码,其二进制就是补码(正数的原、反、补码相同)。-5原码:1000 0000 0000 0000 0000 0000 0000 0101反码:1111 1111 1111 1111 1111 1111 1111 ...原创 2019-04-20 23:55:12 · 3967 阅读 · 0 评论 -
写一个头文件
#ifndef_(文件名)_H#define_(文件名)_H#include<标准库头文件>……(所有函数声明)#endif头文件是对函数的声明,在对其引用时用“……”和<……>两种,如果这个头文件是自己写的就用“”,例如#include“test.h”,这个test.h就是自己写的一个头文件。如果这个头文件是引用标准库的,那么就用<>,例如#in...原创 2019-04-20 23:54:24 · 545 阅读 · 2 评论