C语言程序解释

C语言程序解释,第1张

请参考以下代码。我把所有相关的数据转换为2进制,这样方便肉眼计算。 #include #include int main(void){ unsigned int a=0152,b=0xbb; char s[64]; int i; printf("====================================================\n"); memset(s, 0, sizeof(s)); itoa(a, s, 2); printf("a = \t\t%032s\n", s); memset(s, 0, sizeof(s)); itoa(b, s, 2); printf("b = \t\t%032s\n", s); printf("====================================================\n"); // Bit或运算 memset(s, 0, sizeof(s)); itoa(a|b, s, 2); printf("a|b = \t\t%032s\n", s); // Bit与运算 memset(s, 0, sizeof(s)); itoa(a&b, s, 2); printf("a&b = \t\t%032s\n", s); // Bit异或运算 memset(s, 0, sizeof(s)); itoa(a^b, s, 2); printf("a^b = \t\t%032s\n",s); // Bit取反运算 memset(s, 0, sizeof(s)); itoa(~a, s, 2); printf("~a = \t\t%032s\n", s); memset(s, 0, sizeof(s)); itoa(~b, s, 2); printf("~b = \t\t%032s\n", s); memset(s, 0, sizeof(s)); itoa(~a+~b, s, 2); printf("~a+~b = \t%032s\n", s); printf("====================================================\n"); // For test // 计算a<<=b, 显示每次移动一位的结果。 for (i = 0; i < b; i++) { memset(s, 0, sizeof(s)); itoa(a<<(i+1), s, 2); printf("a<

#include <stdioh>

\这是打开、调用头文件的命令,被调用的头文件

名是stdioh,C语言里有很多的头文件,每个头

文件里都包含一些库函数,如果你不明白什么是

库函数,可以理解为“功能”。\

int main(void)

\该函数的返回值类型是int(整型)的,参数

是void(无,空)型的。\

{

char c[]={'#','$','%','','@'};

\定义一个字符型(char)数组c,数组在赋初值的时

候可以缺省下标,前提是得有值赋给它,然后系

统根据赋值的数量分配给数组相应的存储空间。\

int i[]={8,23,76,32,5,14,34,92};

\定义一个基本整型(int)的数组i,它的元素如下:

i[0]=8,i[1]=23,i[2]=76,i[3]=32,i[4]=5,

i[5]=14,i[6]=34,i[7]=92。注意,数组的最

小下标是从0开始的,最大下标是数组的元素个

数-1,在引用的时候要注意。\

double d[]={314,745,976,395,826};

\定义双精度(double)的数组d并赋初值。\

char pc=c;

\定义一个基类型为字符型的指针变量pc,并

把数组c的首地址赋给指针变量pc,所谓

指针变量,它也是一种特殊的变量,它

存放的是地址值。\

int pi = i;

\定义一个基类型为基本整型的指针变量pi,它存放

的是数组i的首地址。\

double pd = d;

\定义一个基类型为双精度的指针变量pd,它存放数组

d的首地址。\

\数组在内存中的存储空间是连续的,所谓首地址,是

指该数组第一个元素的地址,例如数组i的首地址可以

理解为&i[0]。&是取地址运算符,把它放在变量前面

代表这是该变量的地址。\

printf("%c\n", (pc+3));

\以字符的形式(%c)输出地址(pc+3)里所存放的内容,

如果你认真看了上面的注释,就能理解,pc存放的

是数组c的首地址,即&c[0],数组在内存中是连续

存放的,指针pc是字符型的指针,因为字符型占用

1个字节,所以pc+3就是向后移动3个字节,它指向

c[3]的地址,然后看括号前面的“”,它在定义

语句部分是说明定义的是一个指针,而在这里它叫

做“间址运算符”,作用是把一个地址里的内容取

出来,(pc+3)是一个地址,把它的内容取出来再

输出,即输出一个“”。\

printf("%d\n", (pi+5));

\相信我上面说的够详细了,用心理解一下吧。\

printf("%d\n", (&i[6]-2));

\这里的&i[6]是取出数组i的第7个元素的地址,

然后-2,就变成了第5个元素的地址,即i[4]

的地址,再用间值运算符取出它里面的值,输出。\

printf("%2f\n", (pc+2));

printf("%2f\n", (&d[4]-1));

\这两个跟上面的换汤不换药,根据上面的分析你自己

实践一下,看能不能算出正确的输出结果。\

return 0;

\return再C语言里是返回的意思,它可以返回一个值,

也可以不返回值,在这里它返回一个值“0”。\

}

以上就是关于C语言程序解释全部的内容,包括:C语言程序解释、C语言 程序解释、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9738026.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存