C/C++拾遗

1、++分为前置和后置,前置++比+运算优先级高,后置比+运算符优先级低。
2、gets函数是读取字符串,以回车键结束,fgets是读取一行字符,以换行符结束,getc读入一个字符,fgetc读取一个字符,读取一个字节后后移一位 。
3、C中的结构体没有函数 但是C++的结构体可以有函数;这是C与C++结构体的区别。
C++的结构体可以被类取代,因为类相对于结构体 具有封装性等优势。
C++中结构体与类的区别:
结构体中的成员访问权限不声明时候默认是 公开的;而类 是私有的
4、指针的重要作用
表示一些复杂的数据结构;
快速的传递数据,减少内存的使用;
使函数返回一个以上的值;
能直接访问硬件;
能方便的处理字符串;
是理解面向对象语言中引用的基础;
5、c语言printf()输出格式大全
http://blog.youkuaiyun.com/veronica001/article/details/52450821
转换说明符
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和doulbe)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零”0”
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数
%p 指针
%s 字符串
%% “%”
6、大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小 。
7、Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;最难掌握的是round方法,他表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果是12,
Math.round(-11.5)的结果为-11.
8、
1) malloc 函数: void *malloc(unsigned int size)
在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,则返回所分配内存空间的首地址,否则返回NULL,申请的内存不会进行初始化。
2)calloc 函数: void *calloc(unsigned int num, unsigned int size)
按照所给的数据个数和数据类型所占字节数,分配一个 num * size 连续的空间。 calloc申请内存空间后,会自动初始化内存空间为 0,但是malloc不会进行初始化,其内存空间存储的是一些随机数据。
3)realloc 函数: void *realloc(void *ptr, unsigned int size)
动态分配一个长度为size的内存空间,并把内存空间的首地址赋值给ptr,把ptr内存空间调整为size。 申请的内存空间不会进行初始化。
4)new是动态分配内存的运算符,自动计算需要分配的空间,在分配类类型的内存空间时,同时调用类的构造函数,对内存空间进行初始化,即完成类的初始化工作。动态分配内置类型是否自动初始化取决于变量定义的位置,在函数体外定义的变量都初始化为0,在函数体内定义的内置类型变量都不进行初始化。

当用delete来释放用int p = new int[]申请的内存空间时,由于其为基本数据类型没有析构函数,所以使用delete p与delete []p相同,两者都会释放申请的内存空间,若是自定义的数据类型,有析构函数时,用new []申请的空间,必须要用delete []来释放,因为要delete []时会逐一调用对象数组的析构函数,然后释放空间

9、联合与结构的区别?
“联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和(空结构除外,同时不考虑边界调整)。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。
10、大小端模式
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
11、运算符优先级
https://baike.baidu.com/item/%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BC%98%E5%85%88%E7%BA%A7/4752611?fr=aladdin
12、关于if-else匹配原则,else与最近的未匹配的if配对(切记)
13、类的大小只与成员变量(非static数据成员变量)和虚函数指针有关,还要考虑到对齐.
14、在多维数组中,只有第一维才能够省略,由编译器自动推导。
例如:int a[][3]={1,2,3,4,5,6,7}; 的第一维长度是3,因为编译器会自动补齐最接近数组个数的数组。
15、
int i=0;
int j=0;
if((++i>0)||(++j>0))
{
//打印出i和j的值。
}
//i=1;j=0

短路原则,如果是 || ,前面真后面就不执行,如果是 && 前面为真后面才执行。
16、在C语言中,关键字与保留字表示同一个概念,都是表示C语言提供的特殊标识符,不能用作变量名。
C语言一共有32个关键字(或称保留字)
各关键字及其含义如下:
auto:指定变量的存储类型,是默认值
break:跳出循环或switch语句
case:定义switch中的case子句
char:定义字符型变量或指针
const:定义常量或参数
continue:在循环语句中,回到循环体的开始处重新执行循环
default:定义switch中的default子句
do:定义do-while语句
double:定义双精度浮点数变量
else:与if连用
enum:定义枚举类型
extern:声明外部变量或函数
float:定义浮点型变量或指针
for:定义for语句
goto:定义goto语句
if:定义if语句或if-else语句
int:定义整型变量或指针
long:定义长整型变量或指针
register:指定变量的存储类型是寄存器变量,Turbo c中用自动变量代替
return:从函数返回
short:定义短整型变量或指针
signed:定义有符号的整型变量或指针
sizeof:获取某种类型的变量或数据所占内存的大小,是运算符
static:指定变量的存储类型是静态变量,或指定函数是静态函数
struct:定义结构体类型
switch:定义switch语句
typedef:为数据类型定义别名
union:定义联合体类型
unsigned:定义无符号的整型变量或数据
void:定义空类型变量或空类型指针,或指定函数没有返回值
volatile:变量的值可能在程序的外部被改变
while:定义while或do-while语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值