一次偶然的机会我看到了一段很优雅的代码,短短的11行代码,却包含了数组,指针,字符串,循环等知识点
话不多说,看代码:
要求,不使用 if 语句,使每相邻两数字之间有 ‘,‘ 号
#include<stdio.h>
int main()
{
int a[6]={1,2,3,4,5,6};
int i;
for(i=0;i<6;i++)
{
printf(",%d"+!i,a[i]);
}
return 0;
}
这段代码,没有使用 if 语句就将实现了题目的要求
其中重点是字符串 与 指针地址的巧妙运用
字符串也是指针,而指针存放的是地址,因此“,%d "+1,就相当于字符串“,%d"的首地址加1,即 %成为首地址 逗号 , 不会打印出来。
当 i = 0 时,!i =1;
当 i = 1时,!i=0 ,因为 !表示取反。
因此除了 第一次遍历时的 i=0,!i = 1 以外,后面的 !i=0;
此方法用最少的代码量完成了要求,很是惊艳。