C 复习笔记

发布 2021-05-12 06:25:28 阅读 9898

c++学习笔记。

编译、连接、运行。

compile命令是编译源程序,生成二进制文件;build命令是连接建立应用程序,生成exe文件;execute命令为运行程序。

函数的声明与定义的区别。

声明只是告诉编译器有这么一个函数,在内存中没有为其分配内存,而只有在定义的时候才为其分配内存空间。

许多时间可以不声明函数而直接定义,但这不是一个良好的编程习惯。在某些情况下,函数a可能要调用函数b,而函数b也要调用函数a,则就会有问题了:

以上**,如果不声明函数,则编译无法通过。

6种数据类型:bool、char、双字节型(wchar_t)、int、float、double

’表示回车。注意,回车并不等于换行,回车只是将光标回到改行的起始位置。’’才会回车加换行。

类的成员默认为私有,在类体之后必须加“;”

指针保存的是另一个对象的地址。

string* ps1 , ps2; /只把ps1定义为指针,ps2并非指针,只是一个普通的string对象而已。

string* ps1 , ps2; /这样才是定义两个指针变量。

一个有效的指针必然是一下三种状态之一:保存一个特定对象的地址;指向某个对象后面的另一个对象;或者是0。

很多运行时的错误都源于使用了未初始化的指针。

对大多数编译器来说,如果使用未初始化的指针,会将指针中存放的这个不确定值视为地址,然后操作该内存地址中存放的内容。使用未初始化的指针相当于操作这个不确定地址中存储的基础数据。

指针在使用前要进行初始化。

int *pp=0 ;/正确 p=10 ; 错误 p=null ;/正确 p=null ;/错误。

int count;

int *ptr;

ptr=58error,未初始化就直接赋值。

double dval ;

double *pd =&dval

double *pd2=pd

int *pi=pd类型不同,一个是double型,一个是int型。

pi = dval类型不同。

一种特殊的指针类型void*,它可以保存任何类型对象的地址。

double obj = 3.14 ;

double *pd = obj ;

void *pv = obj ;

pv = pd ;

void*表明该指针与一地址值相关,但不清楚存储在此地址上的对象的类型。

void*指针只有几种有限的操作:与另一个指针进行比较;向函数传递void*指针或从函数返回值void*指针;给另一个void*指针赋值。不允许使用void*指针操作它所指向的对象。

数组名就是数组的第一个元素地址,对于数组a,a等于&a[0]。

int a[100];

int *p=a;

我们有第i个元素的值:

a[i] 等价于 *(a+i) 等价于 p[i] 等价于 *(p+i)

第i个元素的地址:

a[i] 等价于 a+i等价于 p+i 等价于 &p[i]

获得堆内存:函数malloc()是c程序获得堆内存的唯一方法,它在头文件中声明。

void *malloc(size_t size函数原型。

size_t即unsigned long。

该函数表示从内存中“切下”一块size大小的内存,将指向该内存的地址返回。内存中的内容是未知的。

new类似于malloc(),分配堆内存。

delete类似于free(),释放堆内存。

指向常量的指针(常量指针)

const int a = 78;

const int b = 28;

const int *p = ap是常量不能将*p作为左值使用。

p = 58error,不能修改指针指向的常量。

p = b;

指针常量。

char *const pc=”asdf”;

pc=”dfgherror,指针常量不能改变其制针值。

pc=’bok,pc内容为“bsdf”

(pc+1)=’cok,pc内容为“bcdf”

pc++=yerror,指针常量不能改变其指针值。

指向常量的指针常量(常量指针常量)

const int ci = 7 ;

int ai;

const int *const cpc = ci ;

const int * const cpi = ai ;

cpi = aierror,指针值不能修改。

cpi = 39error,不能修改指针指向的对象。

ai = 39 ;

预处理程序对源文件进行第一次处理,它处理的是预处理指令。

三类预处理指令:#include、#define、#if

#if、#else、#elif、#endif、#ifdef、#ifndef、#undef。

#define dtime_h用于“定义”dtime_h

#ifndef dtime_hif not def(如果没有定义用于测试dtime_h是否已经定义。

#endif如果dtime_h已经定义,那么以上的预编译指令都会被忽略。

宏节省时间但占用空间,函数节省空间但增加用时间。

C复习笔记

目录 1.数据类型 值类型 引用类型 2.继承。3.属性和索引器。4.委托和事件。5.异常 io 6.命名空间 程序集。7.泛型。c 注意事项 1.严格区分大小写 2.clr 公共运行环境 cts 公共类型系统 cls 公共语言规范。3.型 把字符转换为该字符对应的ascii 型 4.数据类型 1 ...

C语言复习笔记

1.c标准没有具体规定short,int,long所占内存字节数,只要求long型数据长度 int型数据长度 short型数据长度。具体实现由计算机系统自行决定。如微机上,int和short都是16位,long为32位 vax750上,short是16位,int和long都是32位。注意 以下是典型...

C备课笔记

第十章指针。指针使用灵活 方便,并可以使程序简洁 高效 紧凑。可以说,指针是c语言的精髓。指针涉及数据的物理存储,概念复杂,使用灵活且容易出错,所以较难掌握。学习指针要抓住基本的概念 多用图示分析问题解决问题。简单地说,地址 内存空间或变量的 指针 地址变量 指针变量。变量的地址和指针变量。地址 指...