C指针入门
1,基本介绍
#include<stdio.h>
void main(){
int num = 1;
//定义一个指针变量
//1.int *表示类型为指针类型
//2.名称 ptr ,ptr就是一个int *类型
//3.ptr指向了一个int类型的变量的地址
int *ptr = &num ;
//num的地址是多少
//说明1:如果要输出一个变量的地址,使用格式是%p
//说明2:&num表示取出num这个变量对应地址
printf("num的值 = %d num地址 = %p",num,&num);
//1.指针变量,本身也有地址 &ptr
//2.指针变量,存放的地址 ptr
//获取指针指向的值 *ptr
printf("ptrd 的地址是 %p ptr存放的值是一个地址为 %p ptr指向的值 = %d",&ptr,ptr,*ptr);
getchar();
}
2.案例
- 写一个程序,获取一个int变量num的地址,并显示到终端,将num的地址赋给指针ptr,并通过ptr去修改num的值。
#include <stdio.h>
void main(){
int num = 88;
int * ptr = #
//先输出num没有修改的情况
printf("num的值=%d num的地址 = %p ",num,&num);
*ptr = 99;//通过ptr去修改num的值,num变量的值也就相应的被修改
printf("num的值 = %d num的地址=%p",num,&num);
int a = 300;
int b = 400;
int * ptr = &a;
*ptr = 100;
ptr = &b;
*ptr = 200;
printf("a = %d,b = %d , *ptr = %d",a,b,*ptr);
getchar();
}
3.指针细节说明
- 基本类型,都有对应的指针类型:形式为 数据类型 * ,比如int对应的指针就是 int * ,float对应的指针类型就是 float * ,以此类推;
- 此外还有指向数组的指针、指向结构体的指针、指向共同体的指针(二级指针,多级指针)。