首页 > 编程语言 >头歌实践教学平台—C语言程序设计(指针)

头歌实践教学平台—C语言程序设计(指针)

时间:2024-06-04 17:22:14浏览次数:35  
标签:p2 p1 min int max C语言 头歌 程序设计 指针

5-1 学习-指针基本概念

(一)通过指针变量间接访问变量

#include <stdio.h>
int main(){
    int x,y;
    int *p; //定义指针变量P
    p=&x;   //使指针变量p指向一个变量x
    /*****请在以下填写通过p输入输出x值代码*****/
    /********** Begin *********/
    scanf("%d",p);
    printf("%d\n",*p);
    /********** End **********/
    p=&y;   //使指针变量p指向另一个变量y
    /*****请在以下填写通过p输入输出y值代码
    /********** Begin **********/
    scanf("%d",p);
    printf("%d\n",*p);
    return 0;
}

(二)交换两个指针变量的值

#include <stdio.h>
int main(){
    int a=100,b=200;
    int *p1, *p2, *p;
    p1=&a; p2=&b;
    scanf("%d%d",p1,p2);
    /*****交换p1、p2的值*****/
    /********** Begin *********/
    p=p1; p1=p2; p2=p;
    /********** End **********/
    printf("%d %d\n",*p1,*p2);
    return 0;
}

(三)利用指针方法求数组的最大值和最小值

#include<stdio.h>
#define M 3
main()
{
    int a[M],i;
    int *max,*min;
    for(i=0 ;i<M; i++)
    {
        scanf("%d",&a[i]);
    }
     /***** 将指针变量max,min初始化 *****/
    /********** Begin **********/
    max = &a[0];
    min = &a[0];
    
    /********** End **********/
    /***** 将每个数组元素依次与max,min指向的数组元素比较,使max,min分别指向的最大、最小的数组元素 *****/
    /********** Begin **********/
    for(i=0 ;i<M; i++){
    if(a[i] > *max)
    max = &a[i];
    if(a[i] < *min)
    min = &a[i];
    }
    /********** End **********/
    /***** 通过指针变量max,min输出最大值和最小值 *****/
    /********** Begin **********/
    printf("min=%d\n",*min);
    printf("max=%d\n",*max);
    /********** End **********/
    return 0;
}

5-2 学习-用指针遍历一维数组

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

5-3 练习-用指针实现数组元素逆置

#include <stdio.h>
#define N 10
int main()
{
    /********** Begin **********/
  int a[N],temp,i;
    int *p1=&a[0],*p2=&a[N-1];
    for(i=0;i<N;i++){scanf("%d",&a[i]);}
    for(i=0;i<N/2;i++){temp=*p1;*p1=*p2;*p2=temp; p1++;p2--;}
    for(i=0;i<N;i++){printf("%d ",a[i]);}
    /********** End **********/
   return 0;
 }

标签:p2,p1,min,int,max,C语言,头歌,程序设计,指针
From: https://www.cnblogs.com/cyhms/p/18231320

相关文章

  • Linux C语言学习:数据类型
    一、 为什么要引入数据类型•计算机中每个字节都有一个地址(类似门牌号)•CPU通过地址来访问这个字节的空间        0x2000110310010011     0x20001102 11101110        0x2000110111110101        0x20001......
  • C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
    intcountBits(intn){intcount=0;while(n){count+=n&1;//count=count+n&1//n&1的结果只可能是1或者0//如果对应的二进制位上的数字不同,那么n&1的结果就是1,//那么count刚好加一n>>=1;......
  • 轻松拿捏C语言——【内存函数】
    ......
  • C语言 恼人的结合性和优先级和副作用
    结合性和优先级和副作用1.优先级2.结合性3.副作用4.简单区分i++,++i,i+=1;i=i+1;i=i++1.优先级优先级指的是,如果⼀个表达式包含多个运算符,哪个运算符应该优先执⾏。各种运算符的优先级是不⼀样的。在C语言中,优先性和结合性规则是非常重要的。然而C语言有几乎50中运算符......
  • 【C语言】自定义类型:结构体(建议收藏!!!)
    结构体前言1、什么是结构体2、结构体类型的声明3、结构体变量的创建和初始化4、结构成员访问操作符5、结构体内存对齐6、存在内存对齐的原因7、结构体传参8、结构体实现位段前言我们已经学了很多数据类型,列如int,char,float,double等。但还不能满足需求,在我们......
  • C语言之指针进阶(5),sizeof和strlen的数组计算以及指针运算笔试难题详解
    目录前言一、sizeof和strlen的区分比较二、sizeof,strlen与数组的计算三、指针运算,笔试难题解析总结前言    本文作为指针进阶的最后一篇文章,给大家带来了丰富的例题,这其中包括区分比较sizeof和strlen计算各种花样的数组指针表达式,如果你能答对所有的关......
  • 数据在内存中的存储<C语言>
    导言       在计算机中不同类型的数据在计算机内部存储形式各不相同,弄懂各种数据在计算机内部存储形式是有必要的,C语言的学习不能浮于表面,更要锻炼我们的“内功”,将来在写程序的时候遇见各种稀奇古怪的bug时,也便能迎刃而解,所以本文将着重介绍,整数在内存中的存储、大小......
  • 杨辉三角C语言的超简单解决办法
    #include<stdio.h>#include<stdlib.h>intmain(){intarr[10][10]={0};//十行的杨辉三角intsize=sizeof(arr)/sizeof(arr[0]);//求一共有几行for(inti=0;i<size;i++){for(intj=0;j<=i;j++)//对角线{if(i==j||j=......
  • 浙大翁恺《C语言程序设计》课程笔记
    1.1计算机与编程语言设计算法->编写程序->计算机执行程序执行的两种方式1.解释:借助一个程序(解释器),那个程序能试图理解你的程序,然后按照你的要求让计算机执行2.编译:借助一个程序(编译器),把你的程序翻译成机器语言,然后让计算机执行编程语言本身没有解释型和编译型之......
  • C语言程序设计第二讲:顺序程序设计
    一、数据类型1.基本数据类型C语言中提供了一些基本数据类型,用于表示各种不同类型的数据:整数类型:int:表示整数,通常占用4个字节。shortint:表示短整数,通常占用2个字节。longint:表示长整数,通常占用4或8个字节。longlongint:表示更长的整数,通常占用8个字节。unsignedi......