要用printf输出sizeof的问题,按下图所示运行,为什么会显示有错误syntax error : ','?

#include <stdio.h>
int main( )
{
	int a,b;
	float d,e;
	char c1,c2;
	double f,g;
	long m,n;
	unsigned int p,q;
	a=61;b=62;
	c1='a';c2='b';
	d=3.56;e=-6.87;
	f=3157.890121;g=0.123456789;
	m=50000;n=-60000;
	p=32768;q=40000;
	printf("a=%d,b=%d\nc1=%c,c2=%c\n d=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);
	printf("sizeof(int):%dsizeof(int):%d\n,sizeof(float):%dsize(float):%d\n,sizeof(char):%dsizeof(char):%d\n",sizeof,sizeof,sizeof,sizeof,sizeof,sizeof);
	printf("sizeof(double):%dsizeof(double):%d\n,sizeof(long):%dsizeof(long):%d\n,sizeof(unsigned int):%dsizeof(unsigned int):%d\n",sizeof,sizeof,sizeof,sizeof,sizeof,sizeof);
	return 0;
}

是最后的sizeof后应该加(),括号中应该写输出的格式吗?可是char的输出格式写c显示不正确,unsigned int 的输出格式u也显示不正确……求解答。

即如下所示

	printf("sizeof(int):%dsizeof(int):%d\n,sizeof(float):%dsize(float):%d\n,sizeof(char):%dsizeof(char):%d\n",sizeof(d),sizeof(d),sizeof(f),sizeof(f),sizeof(c),sizeof(c));
	printf("sizeof(double):%dsizeof(double):%d\n,sizeof(long):%dsizeof(long):%d\n,sizeof(unsigned int):%dsizeof(unsigned int):%d\n",sizeof(f),sizeof(f),sizeof(f),sizeof(f),sizeof(u),sizeof(u));

http://img.mukewang.com/581d392d0001890e03470041.jpg

Rebellious_2016
浏览 3807回答 2
2回答

Yexiaomo

......需要明白, sizeof 是一个运算符, 格式为: sizeof( type )   比如你想知道一个int类型占多大字节, 可以这样写printf(“%d”, sizeof( int ) );     输出的 格式控制符为 %d , 输出结果为 4,如果你想知道, 一个数 所占的字节数, 可以这样写: double d = 1.00;printf( " %d ", sizeof(d) );输出结果为: 8, 也就是 double类型所占的字节数 。。。所以 对比 上面你 的 程序,或许你就会知道 那里出错了吧。。。 自己修改吧。。。-------------------------------------------------------分---割---线--------------------------------------------------------------啦啦啦~~Imcainiao

Rebellious_2016

明白了!蟹蟹
打开App,查看更多内容
随时随地看视频慕课网APP