![09C语言指针 09C语言指针](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
C语言指针
地址
地址就是数据元素在内存中的位置表示;
&变量名
#include <stdio.h> int main(){ int aa; unsigned int bb = &aa; printf("%d\n",bb); ; }
#include <stdio.h> int main(){ ]; unsigned ]; printf("%d\n",add); ; }
指针
概念
地址表示一个位置,指针指向这个地址表示的位置;指针是一个变量,它存储的是另一个变量的地址,地址运算符&与间接运算符*被放置在变量的前面时,地址运算符返回该变量的地址;被放置在指针的前面时,间接运算符返回该指针指向变量的内容。
指针变量的定义与使用
#include <stdio.h> int main(){ int aa; int *address; address = &aa; printf("%d\n",address); ; }
#include <stdio.h> int main(){ ]; unsigned ]; printf("%d\n",add); int *aa; aa = &CharArr[]; printf("%d\n",aa); ; }
void指针
空指针或无类型指针
#include <stdio.h> int main(){ int aa;float bb;char cc;void *address; address = &aa; printf("%d\n",address); address = &bb; printf("%d\n",address); address = &cc; printf("%d\n",address); ; }
#include <stdio.h> int main(){ int aa;float bb;double cc;char dd; int ee;float ff;double gg;char hh; int *AA;float *BB;double *CC;char *DD; void *EE,*FF,*GG,*HH; AA = &aa;BB = &bb;CC = &cc;DD = ⅆ EE = ⅇFF = &ff;GG = ≫HH = &hh; printf("%d\n",AA); printf("%d\n",BB); printf("%d\n",CC); printf("%d\n",DD); printf("%d\n",EE); printf("%d\n",FF); printf("%d\n",GG); printf("%d\n",HH) ; ; }
指针运算
取指针元素
#include <stdio.h> int main(){ ; int *AA; AA = &aa; printf("%d\n",aa); printf("%d\n",&aa); printf("%d\n",*AA); ; }
#include <stdio.h> int main(){ ;int *address;int values; address = &aa; printf("%d\n",address); values = *address; printf("%d\n",values); ; }
指针的自增自减
指针与数组
数组名也是指针即数组元素的第一个元素的地址;
指针与字符
#include <stdio.h> int main(){ char character = 'c'; char *c_add; c_add = &character; printf("%c\n",character); printf("%d\n",&character); printf("%c\n",*c_add); ; }
指针与字符串
#include <stdio.h> int main(){ // ] = "abcdefghij"; char *str_add; str_add = CharArr; int i; ;i<;i++,str_add++){ printf("%d %d %c\n",i,str_add,*str_add); } ; }