C程序的输出|集10

预测以下程序的输出。 难度等级: 菜鸟 问题1

null

C

#include<stdio.h>
int main()
{
typedef int i;
i a = 0;
printf ( "%d" , a);
getchar ();
return 0;
}


输出:0 这个程序没有问题。它只是创建一个用户定义的类型 并创建一个变量 A. 类型 . 问题2

C

#include<stdio.h>
int main()
{
typedef int *i;
int j = 10;
i *a = &j;
printf ( "%d" , **a);
getchar ();
return 0;
}


输出:编译器错误->指针类型不兼容的初始化。 排队 typedef int*i 使 作为int*类型。那么,宣布 A. 方法 A. 是指向指针的指针。在不同的编译器上,错误消息可能不同。

此代码的一个可能正确解决方案是问题4。现在也可以试试这个:

C

#include <stdio.h>
int main()
{
typedef int *i;
int j = 10;
int *p = &j;
i *a = &p;
printf ( "%d" , **a);
getchar ();
return 0;
}


问题3

C

#include<stdio.h>
int main()
{
typedef static int *i;
int j;
i a = &j;
printf ( "%d" , *a);
getchar ();
return 0;
}


输出:编译器错误->a的多个存储类。 在C语言中,typedef被认为是 存储类 。在不同的编译器上,错误消息可能不同。 问题4

C

#include<stdio.h>
int main()
{
typedef int *i;
int j = 10;
i a = &j;
printf ( "%d" , *a);
getchar ();
return 0;
}


输出: 10 如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论。 参考资料: http://www.itee.uq.edu.au/~comp2303/Leslie_C_ref/C/SYNTAX/typedef。html http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03sc03.htm http://msdn.microsoft.com/en-us/library/4x7sfztk.aspx

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享