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语言的精髓。指针涉及数据的物理存储,概念复杂,使用灵活且容易出错,所以较难掌握。学习指针要抓住基本的概念 多用图示分析问题解决问题。简单地说,地址 内存空间或变量的 指针 地址变量 指针变量。变量的地址和指针变量。地址 指...