C语言复习和VC6.0开发环境推荐
* * * * * * * * * F10-单步调试 F11-进入函数内部调试 Shift+F11-从函数内部回到调用函数(如main) Ctrl+F10-运行到光标处. Shift+F5-终止调试过程. * 是一个重要概念,可以有效地表示复杂的数据结构; 能动态分配内存; 能方便地使用字符串; 有效而方便地使用数组; 能直接处理内存地址等,这对设计系统软件是很必要的。 指针的概念比较复杂,使用也比较灵活,十分小心。 4. 指针 * new,delete int* parr; parr=new int[100]; //返回类型为 int* 类型(整数型指针),分配大小为 sizeof(int)*100; delete []parr; int *p; p = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int); delete p; * int *p;p=new int[5];//分配大小为 sizeof(int)*5for(int i=0;i<5;i++)*(p+i)=i; 16进制的表示方法,共计32位的2进制bit P 0x0012fe94 CC CC CC CC 80 00 43 00 * 存储一个字节 00计算机存储结构 A B C D E F 000 00 01 00 00 00 00 00 0P指向或包含的一片内存空间首地址 p+1 * int a=3;int *p; 假设已执行p=&a; 关于&和*运算符的说明: 1、&*p与&a相同,即变量a的地址。 2、*&a、*p及变量a等价。 * 3、(*p) + + 相当于a + +,它与*p + + 不同 *p + + 等价于*(p+ +),p的值改变,不再指向a了。 *p + + *(p+ +) 0x0012ff7c - 0x0012ff78= 4 移动长度取决于指针的基类型 * 指针仅能进行加、减算术运算 如:p+n , p-n , p++ , p-- , ++p , --p , p-= n , p+= n , p1-p2 等 其中n是整数,p、p1、p2均为指针; int i,j;j=1; i=j++; (i=1,j=2) int i,j;j=1; i=++j; (i=2,j=2) 施行加法/减法运算时,指针向地址增大/减小的方向移动; 移动长度取决于指针的基类型,由计算机决定; * typedef struct{ int core; char v; }stdudent; stdudent *p; p=new stdudent[3]; p->core=4; p->v='a'; p++; p->core=4; p->v='b'; p++; p->core=4; p->v='c'; 1#std 2#std 3#std 指针移动 * 数组 char a[5]; for(int i=0;i<5;i++) a[i]='a'+i; 数组 * int a[5]; int *p; p=&a[0]; 或p=a; 含义:把数组的首地址赋给指针变量p。 如果指针变量p已指向数组中的一个元素,则p+1指向同一个数组中的下一个元素(而不是简单地加1)。 如果p的初值为&a[0],则:p+i, a+i ,&a[i],即指向a数组的第i个元素。 指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价 引用数组元素时,可以用:a[i], *( a+i ) 或 *( p+i ) 利用指针操作数组 示例2 * 声明结构体类型的同时定义变量 typedef struct Argon{ char name[3]; int mass; Position positionNow; Argon *next; } Argon; 5.结构 15 typedef struct{ int x,y,z; }Position; 嵌套结构 自引用结构 * 组成结构的成员项可以是任何数据类型。 另一个结构类型的变量 指向另一个结构类型的结构指针 可以是指向本结构类型的一个结构指针。 * 它们的元素/成员都必须存放在一片连续的存储空间中; 通过存取结构变量的成员来访问结构变量; 结构中的成员的数据类型可以不相同,而数组中的元素都是有相同的数据类型, 自引用结构多用于链表,而对于数组,编译程序必须给分配存放其全部元素的存储空间。 一些特点: * 嵌套结构变量的访问: Argon.PositionNow.x 对结构体变量的成员可以像普通变量一样进行各种运算。 嵌套的结构指针的引用 Ato