指针的概念
1、指针:指针就是地址 2、怎么获取变量的地址:取地址符号& 3、输出的地址是常量
指针变量
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=10;
int *p;
a=10;
p=&a;
return 0;
}
注意:指针类型名要相对应
指针变量的使用
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=0;
int b=0;
int *p;
a=10;
p=&a;
printf("a的值为:%d\n",a);
printf("a的地址是:%d\n",&a);
printf("p的值为:%d\n",p);
printf("p的地址是:%d\n",&p);
printf("*p的值为:%d\n",*p);
return 0;
}
指针的运算
基本规则: int * 绑定四个字节 char * 绑定一个字节 double * 绑定八个字节 float * 绑定四个字节 指针变量都占四个字节,无论是int、double、float还是char类型
+1指的是地址偏离一个存储单元(一个存储单元4个字节),int偏离一个字节,double偏离4个,char偏离4个,double偏离8个
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=10;
int *p;
p=&a;
printf("a的值:%d\n",a);
printf("a的地址:%d\n",&a);
printf("p的值:%d\n",p);
printf("*p的值 :%d\n",*p);
printf("===========\n");
printf("%d\n",(*p)++);
printf("a的值:%d\n",a);
printf("a的地址:%d\n",&a);
printf("p的值:%d\n",p);
printf("*p的值 :%d\n",*p);
printf("============\n");
printf("%d\n",++(*p));
printf("=================\n");
printf("%d\n",++ *p);
printf("a的值:%d\n",a);
printf("a的地址:%d\n",&a);
printf("p的值:%d\n",p);
printf("*p的值 :%d\n",*p);
printf("=================\n");
printf("%d\n",*p++);
printf("a的值:%d\n",a);
printf("a的地址:%d\n",&a);
printf("p的值:%d\n",p);
printf("*p的值 :%d\n",*p);
return 0;
}
a的值:10
a的地址:6422036
p的值:6422036
*p的值 :10
===========
10
a的值:11
a的地址:6422036
p的值:6422036
*p的值 :11
============
12
=================
13
a的值:13
a的地址:6422036
p的值:6422036
*p的值 :13
=================
13
a的值:13
a的地址:6422036
p的值:6422040
*p的值 :6422040
|