C语言指针笔记01

int num = 90;  定义一个整型变量num

int* ptr = #  定义一个整型指针变量ptr,指针变量ptr的类型取决于他所需要指向的变量,如这里,ptr要指向int类型变量num,所以定义为int*变量,如果是      float类型变量num,则指针需要被定义为float * ptr

*prt = num;  此处说明*ptr的值等于num的值,即num = *ptr = 90

输出方面:

输出地址格式需要用%p

printf("%p,%p,%d", &ptr,ptr,*ptr);

其中:

&ptr  输出指针变量ptr的地址

ptr  输出指针变量ptr保存的值(一个十六进制的地址,若输出采用%d,则输出一个整数)

*ptr  输出指针变量ptr保存的地址的值(相当于直接找到地址修改地址保存的值)

——————————————————————————————————————————————————

实例:

void main(){

  int a = 300;

  int* ptr = a;

)

错误:原因是把int赋值给了int*,int* ptr需要赋值一个地址值,需要把赋值给 ptr的值改为&a即可

void main(){

  int a = 300;

  float *ptr = &a;

}

错误:指针变量指的类型不匹配,float指针指向了int类型的变量的地址

void main(){

  int a = 300;

  int b = 400;

  int* ptr = &a;

  *ptr = 100;

  ptr = &b;

  *ptr = 200;

  printf("\n a=%d,b=%d,*ptr=%d", a, b, *ptr);

}

看懂程序运行:

定义整型变量a,并赋值300

定义整型变量b,并赋值400

定义整型指针变量ptr,并把整型变量a的地址赋值给ptr

把a的值修改为100(此时由于ptr已经保存了a的地址,*ptr等同于a)

把整型变量b的地址赋值给ptr

把b的值修改为200(此时由于ptr已经保存了b的地址,*ptr等同于b)

按需输出!

posted @   Morning枫  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示