码迷,mamicode.com
首页 > 其他好文 > 详细

06 指针入门

时间:2020-02-20 22:22:43      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:结构体   oat   指针   idt   获取   alt   pre   info   span   

1,简单的说,指针表示一个地址,存放的是地址

 1 #include<stdio.h>
 2 
 3 void main() {
 4     int num = 1;
 5     printf("num的值=%d  num的地址=%p\n", num, &num);
 6     //1,如果要输出一个变量的地址,使用格式是 %p
 7     //2,&num表示取出num这个变量对应的地址
 8 
 9 
10     int* ptr = &num; //定义一个指针变量,指针
11     printf("ptr的地址是%p  ptr存放的值是一个地址为%p  ptr存放的地址所指向的值是(ptr指向的值)%d\n",&ptr,ptr,*ptr);
12     //1,int* 表示类型是 指针类型
13     //2,名称ptr,ptr就是一个 int* 类型
14     //3,ptr指向了一个 int 类型的变量(的地址)
15     //4,指针变量,本身也有地址 &ptr
16     //5,获取指针变量存放的地址 ptr
17     //6,获取指针指向的值:*ptr
18 
19 }

技术图片

 

 内存布局图:

技术图片

 

 2,练习1

  写一个程序,获取一个int 变量 num 的地址,并显示到终端将num 的地址赋给指针 ptr,并通过 ptr 去修改 num 的值,并画出内存布局图

1 #include<stdio.h>
2 void main() {
3     int num = 100;
4     printf("num的值是%d num的地址是%p\n", num, &num);
5 
6     int* ptr = &num;
7     *ptr = 200;
8     printf("num的值是%d num的地址是%p\n", num, &num);
9 }

技术图片

 

   内存布局图

    技术图片

3,练习2

  判断程序是否正确

  技术图片

 

 4,练习3

  输出什么内容

 1 #include<stdio.h>
 2 
 3 void main() {
 4     int a = 300;
 5     int b = 400;
 6     int* ptr = &a; //ptr 指向a
 7     *ptr = 100; //a=100
 8     ptr = &b;  //ptr指向b
 9     *ptr = 200; //b=200
10     printf("a=%d,b=%d,*ptr=%d", a, b, *ptr);
11 }

技术图片

 

 5,指针细节

  ①基本类型,都有对应的指针类型,形式为 数据类型*  ,比如 int的对应的指针就是 int* , float 对应的指针类型就是 float* ,以此类推

  ②此外还有指向数组的指针,指向结构体的指针,指向共用体的指针,二级指针,多级指针等。

  

  

  

 

06 指针入门

标签:结构体   oat   指针   idt   获取   alt   pre   info   span   

原文地址:https://www.cnblogs.com/shanlu0000/p/12337603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!