【C语言—零基础第十一课】旋转大转盘之指针

 目录

指针是什么?

指针的定义

指针的赋值

指针的操作

指针的引用


指针是什么?

在生活中我们应该玩过旋转大转盘游戏,指针指到哪个物品我就拿走哪一个物品,这个就是指针。在现实生活中你玩旋转大转盘游戏最后获奖了吗?还有一种就是我们的门牌号我们可以把它想象成为指针,只要我们和其他人说了我们的门牌号他就可以顺着门牌号找到你,而在我们C语言中也有指针。

指针定义

为了说清楚什么是指针,必须先弄清楚数据在内存中是如何存储的,又是如何存储的又是如何读取的。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。编译系统根据系统中定义的变量类型,分配一定的长度。内存区的每一个字节都有一个编号,这就是“地址”,它相当于旅馆中的门牌号。在地址所标志的内存单元中存放的数据则相当于旅馆房间中居住的旅客。

由于通过地址就能找到变量单元,可以说,地址指向该变量单元。比如一个房间的门口挂了201房间,这个就是房间的地址。或者说,201“指向”该房间。因此,将地址形象化成为“指针”。通过它就能找到以它为地址的内存单元。

指针即地址,变量的指针就是变量的地址。

指针的定义

定义指针变量的一般形式为:基地址*指针变量

*为指针说明符号

int *p;

指针的赋值

1.通过取地址运算符:&

int a,*b;
b=&a;

2.通过另一个地址

int a,*q,*p;
q=&a;
p=q;

3.空指针的定义

int *p=NULL;

说明

1. NULL表示空,其值为0

2. 空指针定义后不能引用

指针的操作

&:取地址运算符 只能对内容取地址

*:取内容运算符 只能对地址取内容

#include<stdio.h>
int main(){
    int a=5,b,*p;
    p=&a;
    b=*p;

        printf("%d\n",b);


}

 结果:5

指针的引用

输入两个值进行其值交换后输出

    int a,b,*p,*q;
    q=&a;
    p=&b;
    scanf("%d%d",q,p);
    printf("%d,%d\n",a,b);//5,5
    printf("%d,%d\n",*q,*p);//5,5
    *q=3;
    *p=2;
      printf("%d,%d\n",a,b);//3,2

函数之间的地址传递

#include<stdio.h>
void fun(int *q,int *p){
    *q+=*p;   
    *p+=*q;    
}
int main(){
    int a=5,b=2;
    fun(&a,&b);
      printf("%d,%d\n",a,b);//3,2
}


全部评论

相关推荐

压力很大,面试官全程高压,问的问题不难,但是没有任何反馈,很慌张,也无算法。实习问了20分钟,一直问我你们做的有什么用,总时长一小时1.学校都有什么课程2.spring的ioc原理以及优点3.除了解耦还知道什么?4.springboot与spring区别,二者的源码看过没?Tomcat了解嘛?有没有具体看过5.spring的bean,面试官一直在重复一个思想问我懂不懂,完全没听过6.mybatis是干什么的?ibatis用过没?平常怎么写SQL?完全不写嘛?7.设计一个分布式双十一秒杀系统(前端,网关,缓存,数据库防超卖全设计)8.怎么做限流9.缓存与数据库一致性,你做异步要用户等你嘛?10.负载均衡怎么做11.多数据中心还是单数据中心,如果出现没卖完怎么做(到这完全不会了,面试官直接说换个话题吧)12.平常读书吗?13.上过哲学课嘛?14.兴趣爱好有没有15.对ai的看法16.来深圳有问题嘛?17.为什么不考研18.上大学带给了你什么?你提升在哪里,有没有具体的例子?反问:1.现在手机都有应用市场,应用宝怎么盈利?除了手机应用市场还是有人用,现在在做跨端,微软都有合作,之后会进军mac,主要做游戏,腾讯本身就是游戏大户。2.面试表现?整体评价一下会给到反馈。面完直接变HR面,今天HR面后,已经转为录用评估了,来牛客许个愿,暑期现在还没什么面试,希望能拿个offer之后再考虑要不要留在手子吧。
nunuking:三面压力这么大吗,面试的会议约了多长时间呀
面试问题记录
点赞 评论 收藏
分享
02-16 01:39
南昌大学 Java
重剑Ds:感觉不太可能 后端都减飞了 根本不缺人
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务