C---指针
C指针中的一些内容和例子
首先要知道指针的概念,要弄清指针的四个要素
1.指针的类型
2.指针指向的类型
3.指针所指向的地址
4.指针本身所占用的内存
另外要知道俩个指针运算符
&:取地址运算符
*:间接访问运算符即指针运算符
一、指针变量
/*1.指针变量*/ #include <stdio.h> int main(void) { int i=1234; int *p=&i; //定义一个整形指针,指向变量i int x=*p; //通过指针访问变量i的内容 printf("p:%d\n",p); //指针指向的内存地址 printf("x:%d",x); //等于*p指针占用的内存 getchar(); }
/*输入俩个整数a和b,按照大小的先后顺序排序*/ #include<stdio.h> int main(void) { int a,b,*pointer_1,*pointer_2,*temp; scanf("%d,%d",&a,&b); pointer_1=&a; //指针指向变量 pointer_2=&b; if(*pointer_1<*pointer_2) //根据指针占用内存大小比较,即变量值比较 { temp=pointer_1; //改变指针指向的内存地址 从而做到指针占用内存的改变 pointer_1=pointer_2; pointer_2=temp; } printf("%d,%d\n",a,b); printf("%d,%d",*pointer_1,*pointer_2); getchar(); getchar(); }
二丶指针运算符:
指针运算符(*)和指针变量说明符(*)不是一回事,在指针变量说明中,*是类型说明符,表示其后的变量是指针类型,而表达式中出现的*则是一个运算符用以表示指针变量所致的变量。
#include<stdio.h> int main(void) { int a=5,*p=&a; //指针变量P取得了整形变量a的地址,在这里是指针运算符 printf("%d",*p); //表示输出变量a的值。在这里就是指针变量说明符 getchar(); }
三丶赋值运算:
1.初始化赋值:
int *pointer=&a;
2.把一个指针变量的值赋予指向相同类型的指针变量:
int a=5,*pointer; pointer=&a;
3.把一个指针变量的值赋予指向相同类型的另一个指针变量:
int a=5,*pointer=&a,*pointerInt; pointerInt=pointer; //把a的值赋予指针变量pointerInt
4.把数组的首地址赋予指向数组的指针变量:
int a[5],*pointer; pointer=a; //数组名表示数组的首地址,故可赋予指向数组的指针变量 or pointer=&a[0];//数组第一个元素的地址也是整个数组的首地址,也可赋予pointer
5.把字符串的首地址赋予指向字符类型的指针变量:
char *pc; pc="C language"; printf("%c",&pc); getchar(); //输出结果为D
这里应说明的是,并不是把整个字符串的装入指针变量,二十把存放该字符串的字符数组的首地址装入指针变量。在后面还将详细介绍,
6.把函数的入口地址赋予指向函数的指针变量:
int main(void) { int (*pf)();//定义函数指针 pf=f; } int f(void) //函数f { }
四丶加减算术运算
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步