首页 > 其他分享 >初步学习指针小作业

初步学习指针小作业

时间:2024-12-19 22:26:39浏览次数:9  
标签:10 变量 指向 int 作业 初步 地址 指针

一、初识指针的概念

在C语言中,指针是一种变量,它存储的是另一个变量的内存地址
 
就好像你有很多信箱(变量),每个信箱都有一个编号(内存地址)。指针就是一个小纸条,上面写着某个信箱的编号,通过这个编号就能找到对应的信箱。
 
例如,有一个变量 int a = 10; ,可以定义一个指针变量 int *p; ,然后通过 p = &a; 让指针 p 指向变量 a 。这里 &a 就是获取变量 a 的内存地址。 *p 用于访问指针所指向的变量的值,所以 *p 的值就是10。

例1.1

int main()
{
    int a,b,c;
    // 正确使用scanf读取输入
    scanf("%d,%d",&a,&b);
    // 使用%d正确输出变量地址
    printf("a的地址=%d,b的地址=%d\n",&a,&b);
    // 正确输出变量c的地址
    printf("c的地址=%d\n",&c);
    c = a + b;
    printf("c = %d\n",c);
    return 0;
}

如11.1所示,第4行,输入变量a和b时需要使用&取变量的地址,从而把变量值输入到变量名对应的存储单元中。第5行用printf( )函数输出变量a和b的地址。第8行输出变量c的地址。存储单元地址指明变量临时占用内存单元的位置,形象地称为指针,存放地址的值称为指针变量。指针指向变量的数据类型就是该指针的类型。指针的值是其指向的内存单元的地址,是数值型数据。

二、指针的初步应用

例题2.1

编程将数组中的数据逆序存放,要求:用指向数组的指针变量实现。

定义数组 int a[10];十个元素,整型

答案:

#include <stdio.h>
void sort(int *, int);
int main( )
{
   int a[10],i,*p;
   for(i=0;i<10;i++){
       scanf("%d", &a[i]);
   }
   p=a;
   sort(p,10);
   for(i=0;i<10;i++){
       printf("%d,",a[i]);
   }
    return 0;
} 
void sort(  int *p, int n  )
{ 
    int i,j,temp;
    for(i=0;i<n/2;i++){
    temp=*(p+9-i);
        *(p+9-i)=*(p+i); 
        *(p+i)=temp;    
    }
}



20分
5. (程序题)

例2.2

*用指向数组指针的方法对 10 个整数排序并由大到小输出。要求单独写一个排序函数。各个整数在主函数中输入,最后在主函数中输出。

答案:

#include <stdio.h>
void sort(int *, int);
int main( )
{
   int a[10],i,*p;
   for(i=0;i<10;i++){
       scanf("%d", &a[i]);
   }
    p=a ;        
    sort(p,10);
    for(i=0;i<10;i++){
       printf("%d ",a[i]);
    }
    return 0;
} 
void sort( int *b, int n )
{ 
    int i,temp,*p;
    for(i=0;i<n-1;i++){
        for(p=b;p<b+n-i-1;p++){ 
            if(*p<*(p+1))
            {
               temp=*p;
               *p=*(p+1);
               *(p+1)=temp;
            }
        }
    }
}

标签:10,变量,指向,int,作业,初步,地址,指针
From: https://blog.csdn.net/2401_88607462/article/details/144596082

相关文章

  • C语言 查漏补缺(数组+结构体+指针)
    1.基础概念1.1数组名的命名规则和变量名相同,遵循标识符命名规则。1.2在C语言中,数组名被当作常量,其值是数组的首地址。1.3变量的地址是指变量在内存中占据起始存储单元的编号1.4定义结构体的关键字是struct,定义共用体的关键字是union。2.函数2.1gets(  )#include......
  • LeetCode-19. 删除链表的倒数第 N 个结点,关于删除链表会遇见的指针问题
    原题链接前言虽然这道题比较简单,但是我在做这道题时发现了几个需要注意的地方,故写个笔记提一下。正文先将源代码给出来classSolution{public:ListNode*removeNthFromEnd(ListNode*head,intn){ListNode*x=newListNode();x->next=head......
  • 指针主要内容的习题及答案
    1.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是 B 。A)c=*p1+*p2B)p2=cC)p1=p2D)c=*p1*(*p2)2.设有程序段:chars[]=”china”;char*p;p=s;则下面叙述正确的是 D 。A)s和p完全相同B)数组s中的内容和......
  • 【C语言的奥秘11】指针知识点总结(续)
    目录一、指针的运算1、指针与整数相加减2、指针-指针(地址-地址)3、指针的关系运算六、指针和数组七、二级指针八、指针数组一、指针的运算1、指针与整数相加减看一下下面的代码:#include<stdio.h>intmy_strlen(char*str){intcount=0;while(*str!='......
  • 169. 大学生HTML5期末大作业 ―【鲸鱼动物主题精品网页 (5页)】 Web前端网页制作 html5+
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强欢迎来到我的CSDN主页!Web前端网页制作、大学生期末大作业、课程设计、毕业设计、网页模版源码、学习资料等,更多优质博客文章、网......
  • C语言字符串指针
    C语言字符串指针(指向字符串的指针)详解C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在《C语言字符数组和字符串》中已经进行了详细讲解,这里不妨再来演示一下:#include<stdio.h>#include<string.h>intmain(){charstr[]="http://c.biancheng.net......
  • 360.大学生HTML5期末大作业 —【漫威电影网站(页)】 Web前端网页制作 html5+css3+js
    目录一、网页简介二、网页文件三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强欢迎来到我的CSDN主页!您的支持是我创作的动力!Web前端网页制作、网页完整代码、大学生期末大作业案例模板完整代码、技术交......
  • 变量a使用了一段内存,变量b也和a使用了相同的内存,如果b把这段内存释放了,a将变为悬空指
    在C++中,如果两个变量(a 和 b)指向同一段内存,并且其中一个变量(如 b)释放了这段内存,那么这段内存就被标记为可供系统重用的空闲内存。此时另一个变量(a)依然保留原有的指针,但它指向的内存已经被释放,成为 悬空指针(danglingpointer)。关键问题内存释放后的行为如果 b 调用了......
  • 关于C语言中指针的使用的练习
    #include<stdio.h>#include<stdlib.h>intmain(){char*arr=NULL;intsize,new_size;//动态分配初始内存printf("Entertheinitialsizeofthearray:");scanf("%d",&size);arr=(char*)malloc(s......
  • 通过指针引用字符串
    通常引用字符串是把其放入一个数组中,通过指针的学习,发现,指针同样可以引用字符串,且更有效率。旧方法:定义一个数组a【】=“所要引用的字符串”。新方法:定义一个指针(字符型)char*string=“所要引用的字符串”,也称对指针变量string的初始化。这个需要解释一下,c语言对字符串常量是按......