1.
int a[] = {1,2,3,4};
char *p = (char*)a;
p++;
printf("%d\n",*p);
//0
2.#define AAN(N) AA##N
enum
{
AA = 0,
AA1,
AA2
};
printf("%d,%d\n",AAN(1),AAN(2));
来至网络:
#define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x
3.C++ 引用方式传递数组指针,并释放内存,把指针置为NULL
以下来至网络:
引用: void fun(int (&arr)[SIZE]); 注意,方括号中的SIZE必须要写,而且在调用的时候必须用这个SIZE的数组,否则会出错; 例如: void fun(int (&arr)[5]); 在调用的时候传入的数组必须是int型的大小为5的数组: int nArr[5]; fun(nArr); 否则会错;更牛逼的做法:
刚才说了,C++是很牛B的,那么牛B的,难道定义的函数只能处理固定大小的数组?当然不是 这样定义,可以处理任意大小的数组: template < int N > void fun(int (&arr)[N]); 这样,任意大小的int型数组都可以传递进来了 这个方法叫“非类型模版参数”