摘要:
二元作用域运算符(::)在不同的地方有不同的含义1,如果成员函数中定义了和类域中的变量同名的变量,则类域中的变量被块作用域中的变量隐藏。这时可以在变量名前面加类名和作用域运算符(::)访问这种隐藏变量。eg:class A{private: int num = 2;public: void func() { int num =7; cout<<"成员变量:"<<A::num<<endl; }};2,可以用一元作用域运算符访问隐藏的全局变量double a = 5.4;int main(){ double a = 3.3; ... 阅读全文
摘要:
void bucketSort(int arr[],int size){ int tempArr[10][SIZE] = {0};//桶 int max,loop,j=0; int bitVal,base=1; max = maxVal(arr,size);//数组中最大数字 while(base max){ max = arr[i]; } } return max;} 阅读全文
摘要:
选择排序算法扫描一个数组并寻找数组中最小的元素,当找到最小的元素师,将它和数组中的第一个元素进行交换。接下来,从数组的第二个元素开始,这一过程在子数组上重复。每一轮的结果是有一个元素被放在了适当的位置上。这一排序需要的处理能力类似于冒泡排序。void selectSort(int arr[],int low,int high){//low 是数组的开始下标 high是结束下标 int i; int min = low; if(low < high){ for(i = low + 1;i <= high;i++){ if(arr[i]... 阅读全文
摘要:
概念:把数组分割成两个相同大小的子数组,对两个数组进行排序,然后再将他们合并成一个数组。对于有奇数个元素的数组,这个算法创建两个子数组,其中一个要比另一个多一个元素。#include "stdio.h"#include "stdlib.h"#include "time.h"#define SIZE 10void mergeSort(int arr[],int low,int high);void merge(int arr[],int low,int high,int low2,int high2);int main(void){ i 阅读全文
摘要:
在可变实参头文件中的宏和定义,为创建一个可变长实参列表的函数提供了必须的功能va_list 该类型适合于保存宏va_start,va_arg和va_end所需的信息。为了访问到一个可变长实参列表中的实参,必须声明一个类型为va_list的对象va_start 在一个可变长实参列表中的实参被访问之前,先要调用这个宏。这个宏的功能室:初始化用va_list声明的对象,以便让宏va_arg和va_end来使用va_arg 这个宏展开成一个表示可变长实参列表中下一个实参的值和类型的表达式。每次对va_arg的调用都要修改用va_list声明的对象,以使这个对象指向列表中的下一个实参va_end 当一个 阅读全文
摘要:
1.在程序开发过程中,如果不想某些代码不参加编译,我们可以用/*和*/封起来,但是如果代码中已经有符号/*和*/,那就不能起作用了,这是我们可以采用如下结构处理:#if 0 代码。。。#endif如果想重新让这部分代码参加编译,只需要把0改为1即可。2.程序的调试。我们可以通过条件预处理命令将printf等调试的语句封装起来,让其只能在程序调试过程中起作用:#ifdef DEBUGprintf("......");#endif这里的DEBUG先前预定义(#define DEBUG)如果定义了就参加编译,如果没有就会被编译器忽略。在大型软件开发中,可能需要定义诺干个不同的符号 阅读全文
摘要:
1 #include "stdio.h" 2 #include "stdlib.h" 3 #include "ctype.h" 4 #include "math.h" 5 #include "string.h" 6 7 struct stackNode{ 8 char data; 9 int value; 10 struct stackNode *nextPtr; 11 }; 12 13 typedef struct stackNode StackNode; 14 typedef StackNo 阅读全文