编程"骚"技巧,如何降低程序可读性(一)

本文探讨了C/C++中静态变量的使用及其对代码行为的影响,并解析了sizeof操作符与乘号在表达式中的作用。

如和是一段代码第一次执行时的行为与以后的执行时不同。

#include   <iostream>   

//------------------------------------------------
void generate_initializer(char * string)
{

	static char separator = ' ';
	printf("%c %s \n", separator, string);
	separator = ',';
}
void main()
{

	char string[5] = "aaaa";
	generate_initializer(string);
	generate_initializer(string);

}

函数第一遍执行结果前面会是空格,而第二次执行结果将是逗号,很好的降低代码的可读性!

到底有几个乘号?

#include   <iostream>   
#include <stdlib.h>
#define N 1

//------------------------------------------------

//-----------------------------------------------
void main()
{

	int *r,p,*q;
	p = N * sizeof *q;//这里面有几个和乘号
	printf("p = %d\n", p);
	r = (int *)malloc(p);
	printf("r = %d\n", r);
//----------------------------------------
	p = sizeof(int)* p;//那这里面有几个乘号呢?
	printf("p = %d\n", p);
	r = (int *)malloc(p);
	printf("r = %d\n", r);
	getchar();


}

第一个答案这里只有一个乘号因为sizeof操作符将指针q指向的东西(即 *q)作为操作数。它返回的q所指向对象类型的字节数。

第一个结果就是4。

第二个答案这里是一个乘号 ,结果是16.sizeof(int)返回4~4*4=16

嗯很好降低了程序的可读性~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值