如何解释这段小小的c程序!

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:06:13
#include<stdio.h>
#include<stdlib.h>
int main()
{
char int_len = sizeof(int);
char ch = 'a';
char i,j;
int *num = (int*)malloc(26/int_len+1);
int temp=0;
char *p=(char*)num;
for(i=0;i<26/int_len+1;i++)
{
for(j=0;j<int_len;j++)
temp|=(int)ch++<<(j*8);
num[i]=temp;
temp=0;
}
for(i=0;i<26;i++)
putchar(*p++);
system("pause");
return 0;
}
也许习惯了 编译器的那种容不得半点马虎的 作风,
呵呵,我的话偏激了 在这里跟兵兵说声不好意思!
以下是我一个同学的解释

#include<stdio.h>
#include<stdlib.h>
int main()//代码的要点在于你是否 学过指针的运算
{
char int_len = sizeof(int);//不同的编译器有不同的大小,这种做法有较好的移植性
char ch = 'a';
char i,j;
//int *num = (int*)malloc(26/in

呵呵,也没什么了。不过真的,我的指针很糟糕了,特别现在学C++时更深有体会,看来的再学习指针了,谢谢了!!!
灌水也吧,什么也吧,我刚查了一下,还真有这个符号,是赋值符号,不过我没用过,不知道其中真意,希望你帮我解释一下,学的不扎实,谢谢了!!
#include<stdio.h> //输入输出函数的头文件
#include<stdlib.h>
int main()
{
char int_len = sizeof(int); //定义int_len为char类型的数据,
//并且把int型数据在系统中占的字节大小赋给它。
//siziof(),是计算括号中数据的字节数。
char ch = 'a'; //定义ch为char类型的数据,
char i,j;
int *num = (int*)malloc(26/int_len+1);
//定义int类型的指针num,并且开辟一个大小为26/int_len+1内存地址
//(int*)是强制转换后面的数据为int类型的指针
int temp=0;
char *p=(char*)num;
//利用for循环输入数据
for(i=0;i<26/int_len+1;i++)
{
for(j=0;j<int_len;j++)
temp|=(int)ch++<<(j*8); //|=,这个符号弄错了吧,C语言中没有
num[i]=temp;
temp=0;
}
//利用for循环输出数据
for(i=0;i<26;i++)
putchar(*p++); //一个一个字符的输出
system("pause"); //是结果停留在小黑屏上。
return 0;
}

|= 是个 “位运算符”
谁说没有

你说的一楼是指兵兵吗 我觉得他回答得很好啊 怎么人家就是灌水的呢