当前位置: 首页 > news >正文

指针——字符指针

一,代码尝试

看一段代码,你认为的结果是什么呢?

#include<stdio.h>
//1-1字符指针(内存存放)
int main()
{char str1[] = "hello";//数组str1char str2[] = "hello";//数组str2char* str3 = "hello";//指针str3char* str4 = "hello";//指针str4if (str1 == str2)printf("same\n");elseprintf("not\n");if (str3 == str4)printf("same\n");elseprintf("not\n");return 0;
}

或许看到这串代码,你完全没有思路去解决,但不要着急,跟着小编的步伐走,最后你一定能够理解的!!!

二,基本知识

(1)字符指针的两种不同指向

           1.指向地址:如下

char ch = 'a' ; //定义一个字符变量ch,赋值为 'a'

char *pc = &ch ;//定义一个字符指针指向变量ch的地址

           2.指向字符串:如下

char* pa = "hello" ; //定义一个指针指向字符串

(需要注意的是该处的字符串为常量字符串,是不可更改的)

三,图片分析上述代码

(1)首先来看两个数组 arr1 和 arr2

(2)再来看两个指针

(四)代码再次分析注释

#include<stdio.h>
//1-1字符指针(内存存放)
int main()
{char str1[] = "hello";//数组str1,开辟一块内存空间1,用来存放hellochar str2[] = "hello";//数组str2,开辟一块内存空间2,用来存放hellochar* str3 = "hello";//指针str3,指向原本hello所在内存首元素地址,由于hello为常量字符串,//所以在内存中只开发一块空间,即str3和str4指向的地址一样char* str4 = "hello";//指针str4,指向原本hello所在内存首元素地址if (str1 == str2)printf("same\n");//不打印,由于是str1和str2地址不同elseprintf("not\n");//打印if (str3 == str4)printf("same\n");//打印elseprintf("not\n");//不打印return 0;
}

(本文章来自于小编学习总结,如有与其他视频教学内容重复请见谅)


http://www.mrgr.cn/news/42124.html

相关文章:

  • 【大数据】Doris 数据库与表操作语法实战详解
  • 【Docker从入门到进阶】04.高效实践
  • 实用技能分享!推荐最适合论文写作的5款ai工具
  • 论文提纲怎么写?分享5款AI论文写作软件
  • Docker 启动 PostgreSQL 主从架构:实现数据同步的高效部署指南
  • 计算机视觉与深度学习 | 从激光雷达数据中提取地面点和非地面点(附matlab代码)
  • 基于STM32的智能家居灯光控制系统设计
  • TCN模型实现电力数据预测
  • 【Orange Pi 5 嵌入应用编程】-用户空间I2C通信
  • 滑动窗口+动态规划
  • 【课程学习】Wireless Communications
  • 基于Springboot+Vue的小区停车场管理系统登录(含源码数据库)
  • UNICODE UTF8
  • Javascript数组研究02_手写实现_at_concat_copyWithin_entries_every
  • 风格迁移项目一:如何使用
  • JQuery基本介绍和使用方法
  • CF687D Dividing Kingdom II 题解
  • 简历制作面试篇
  • pdb个人记录
  • 【算法系列-链表】交换链表节点(反转 + 交换)