标签:结构体 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 = # //定义一个指针变量,指针 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 = # 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* ,以此类推
②此外还有指向数组的指针,指向结构体的指针,指向共用体的指针,二级指针,多级指针等。
标签:结构体 oat 指针 idt 获取 alt pre info span
原文地址:https://www.cnblogs.com/shanlu0000/p/12337603.html