| 本帖最后由 Guido 于 2020-11-9 21:49 编辑 
 1、使用char*类型的指针变量对一个int类型的变量在4个字节上高低位按单字节交换:
 例如:将int i=0x12345678,用指针char*变量进行按字节交换后变成0x78563412
 
 //1、使用char*类型的指针变量对一个int类型的变量在4个字节上高低位按单字节交换:
//例如:将int i=0x12345678,用指针char*变量进行按字节交换后变成0x78563412
#include<stdio.h>
int main()
{
        int i = 0x12345678;
        char *p;
        int n = 2;
        p =(char *) &i;
        char t;
        t = p[0];
        p[0] = p[3];
        p[3] = t;
        t = p[1];
        p[1] = p[2];
        p[2] = t;
        return 0;
}
 逆向学习第15天_指针学习   2、使用short*类型的指针变量对一个int类型的变量在个字节上高低位按双字节交换:
 例如:将int i = 0x12345678,用指针short*变量进行按字节交换后变成:0x56781234
 
 //2、使用short*类型的指针变量对一个int类型的变量在个字节上高低位按双字节交换:
//例如:将int i = 0x12345678,用指针short*变量进行按字节交换后变成:0x56781234
#include<stdio.h>
int main()
{
        int i = 0x12345678;
        short *p=(short *)&i;
        short s;
        s = p[0];
        p[0] = p[1];
        p[1] = s;
        printf("%x", i);
        return 0;
}
 逆向学习第15天_指针学习   3、正常情况下,我们无法对一个整数的数组一次性输入所有数值。
 为了解决这问题,可以先输入包含多个至格作为间隔的连续数字,通过gets函数一次性接收下来。
 将输入的字符串循环调用strtok函数进行拆分,把拆分后的小字符事转化为数学,再打印“你输入了x个数字,这些数字的平均值是:xxx
 int a[10];
 char s[100];
 printf(”请随意输入1到10个整数:[以空格间隔]");
 gets(s);
 while
 (..).strtok
 (strtok函数的用法要自己根据ISDN说明和例子自己研究明白)
 
 //3、正常情况下,我们无法对一个整数的数组一次性输入所有数值。
//为了解决这问题,可以先输入包含多个至格作为间隔的连续数字,通过gets函数一次性接收下来。
//将输入的字符串循环调用strtok函数进行拆分,把拆分后的小字符事转化为数学,再打印“你输入了x个数字,这些数字的平均值是:xxx
//int a[10];
//char s[100];
//printf(”请随意输入1到10个整数:[以空格间隔]");
//gets(s);
//while
//(..).strtok
//(strtok函数的用法要自己根据ISDN说明和例子自己研究明白)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
        int a[10];
        char s[100];
        int i = 0;
        printf("请随意输入1到10个整数:[以空格间隔]\n");
        gets_s(s);
        char *p=strtok(s, " ");
        double sum = 0.0;
        while (p)
        {
                a = atoi(p);
                sum += a;
                p = strtok(NULL, " ");
                ++i;
        }
        printf("您输入了%d个数字,平均值是%0.2lf", i, sum/i);
        return 0;
}
 逆向学习第15天_指针学习   (int)与atoi的区别:
 (int)只针对某一个元素进行转换,且遇到double、float时,只保留整数位
 atoi是对整个进行元素类型转换的
 
 逆向学习第15天_指针学习   
 |