关于数组和指针好玩的一些小程序~
最近看数组和指针突然有些发现,写出来看看(据说这是写不可维护代码的需要掌握的技能之一)~这个是数组版的~
程序代码:
#include<stdio.h>
#include<stdlib.h>
void test0( void );
void test1( void );
void test2( void );
void test3( void );
void test4( void );
void test5( void );
void test6( void );
void test7( void );
void test8( void );
int main( void )
{
test0();
test1();
test2();
puts("");
test3();
test4();
test5();
puts("");
test6();
test7();
test8();
return 0;
}
void test0( void )
{
char s[8]={"abcde"};
char* const p=s;
printf("test0: ");
*p=*"wxyz123";
puts(s);
}
void test1( void )
{
char s[8]={"abcde"};
short* const p=( short* )s;
printf("test1: ");
*p=*(const short* const )"wxyz123";
puts(s);
}
void test2( void )
{
char s[8]={"abcde"};
int* const p=( int* )s;
printf("test2: ");
*p=*(const int* const )"wxyz123";
puts(s);
}
void test3( void )
{
char s[8]={"abcde"};
void* const p=s;
printf("test3: ");
*p=*(const char* const )"wxyz123";
puts(s);
}
void test4( void )
{
char s[8]={"abcde"};
void* const p=s;
printf("test4: ");
*p=*(const short* const )"wxyz123";
puts(s);
}
void test5( void )
{
char s[8]={"abcde"};
void* const p=s;
printf("test5: ");
*p=*(const int* const )"wxyz123";
puts(s);
}
#define TEST( NAME, TYPE ) \
void NAME () \
{ \
char s[8]={"abcde"}; \
\
void* const p=s; \
\
printf( \
#NAME": " \
); \
\
*p^=*( TYPE* )s; \
*p^=*(const TYPE* const )"wxyz123"; \
puts(s); \
}
TEST(test6,char)
TEST(test7,short)
TEST(test8,int)
[此贴子已经被作者于2018-4-1 19:44编辑过]









~
