首页 > 代码库 > 第一次c语言小结

第一次c语言小结

##如何用c语言代码查看系统的大小端


大端方式将高位存放在低地址,小端方式将低位存放在高地址。采用大端方式 进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理

如果将一个16位的整数0x1234存放到一个短整型变量(short:占两字节)中。这个短整型变量在内存中的存储在大小端模式由下表所示。

地址偏移

大端模式

小端模式

0x00

12(OP0)

34(OP1)

0x01

34(OP1)

12(OP0)


#include<stdio.h>
int main()
{
        int short x=0x1122;
        char x1,x2;
        x1=((char *)&x)[0];
        x2=((char *)&x)[1];
        printf("%x,%x",x2,x2);
        return 0;
}


结果为x1=22,x2=11,的系统为小端,现在的系统大多为小端。

还可以用结构体检测

#include<stdio.h>
int main()
{
        union check
        {
                int i;
                char b;
        }c;
        c.i=1;
        printf("%d\n",c.b);
}
结果为1的为小端。


作业:

1

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
        int a[4]={1,2,3,4};
        int* pa=(int*)((int*)a+1);
        printf("%d\n",*pa);
        return 0;
}

的结果为2,因为此代码为把数组的首地址加1所以*pa就指向了数组的第二个数。

2

回文字符串的检测

#include<stdio.h>
#include<string.h>
int huiwen(char ch[])
{
        int a=strlen(ch),b=0;
        int c=1;
        for(b=0;b<a/2;b++)
        {
                if(ch[b]!=ch[a-b-1]){
                c=0;
                break;
                }
        }
        return c;
}

int main()
{
        char ch[]="abcdefhjfedcba";
        printf("%d\n",huiwen(ch));
        return 0;
}
3

字符串中的字母数字的计数

#include<stdio.h>
#include<string.h>
void count(char ch[])
{
        int a=strlen(ch);
        int i=0,big=0,sml=0,spe=0,num=0;
        for(i=0;i<a;i++)
        {

               if(ch[i]<=‘z‘&&ch[i]>=‘a‘)
                        sml++;
                if(ch[i]<=‘Z‘&&ch[i]>=‘A‘)
                        big++;
                if(ch[i]<=‘9‘&&ch[i]>=‘0‘)
                        num++;
        }
        spe=a-big-sml-num;
        printf("大写字母有:%d\n",big);
        printf("小写字母有:%d\n",sml);
        printf("数字有:%d\n",num);
        printf("特殊字符有:%d\n",spe);
}

int main()
{
        char ch[]="hello1A world.";
        count(ch);
        return 0;
}






第一次c语言小结