#include <stdio.h> #include <assert.h> #include <Windows.h> void initArray(int a[], int size) { assert(a);//断言 int i = 0; for (; i < size; i++) { a[i] = i; printf("%d ", a[i]); } } void reverseArray(int a[], int size) { int i = 0; int start = 0; int end = size - 1; for (; i < size;i++) { while (start < end) { //用异或交换元素 a[start] ^= a[end]; a[end] ^= a[start]; a[start] ^= a[end]; start++, end--; } printf("%d ", a[i]); } } void emptyArray(int a[], int size) { assert(a); int i = 0;; for (; i < size; i++) { a[i] = 0; printf("%d ", a[i]); } } int main() { int a[10]; int size =sizeof(a)/sizeof(a[0]);//求数组大小 printf("对数组进行初始化:\n"); initArray(a,size); printf("\n"); printf("对数组进行逆序:\n"); reverseArray(a,size); printf("\n"); printf("对数组进行清空:\n"); emptyArray(a,size); system("pause"); return 0; }
assert(断言)的用法:
assert宏的原型定义在<assert.h>中,其作用是先计算表达式 expression ,如果expression的值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort 来终止程序运行。