码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2022/11/24 [指针] 通过指针引用字符串


    在c程序中,字符串是存储在字符数组中的,想引用一个字符数组,有以下两种办法:

    (1)用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格式声明“%s”输出该字符串。

    程序:定义一个字符数组,输入该字符串和第8个字符

    1. #include
    2. int main()
    3. {
    4. char a[] = "I love China!";
    5. printf("%s\n", a);
    6. printf("%c\n", a[7]);//第八个字符位a[7]
    7. return 0;
    8. }

    a[7]实际上就是*(a+7),a+7是一个地址,指向字符‘c'

    (2)用字符指针变量指向一个字符串常量,通过字符指针变量引用字符串常量。

    程序:通过字符指针输出字符串

    1. #include
    2. int main()
    3. {
    4. char* string;
    5. string = "I love China!";
    6. printf("%s", string);
    7. return 0;
    8. }

    C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放该字符串常量,但是这个字符数组是没有名字的.因此不能通过数组名来引用,只能通过指针变量来引用。

    对字符指针变量string初始化,实际上是把字符串第1个元素的地址(即存放字符串的字符数组的首元素地址)赋给指针变量string,使string指向字符串的第1个字符.

    说明:有人误认为string是一个字符串变量,以为在定义时把"I love China!"这几个字符赋给该字符串变量,这是不对的。在C语言中只有字符变量,没有字符串变量。

    实际上,char* string="hello“分为:char* string;string=”hello“;把字符串的第一个元素的地址赋给string,注意:string被定义为一个指针变量,基类型为字符型。请注意它只能指向一个字符类型数据,而不能同时指向多个字符数据,更不是把"hello"这些字符存放到string 中(指针变量只能存放地址),也不是把字符串赋给* string。只是把"hello"的第1个字符的地址赋给指针变量string。

    先可以通过字符指针变量来输出它所指向的字符串,如printf("%s",string),%s是输出字符串时所用的格式符,在输出项中给出字符指针变量名string,则系统会输出string所指向的字符串第1个字符,然后自动使string加1,使之指向下一个字符,再输出该字符……如此直到遇到字符串结束标志’\0'为止

    对于字符的存取,可以采用下标的方式或指针的方式:

     

  • 相关阅读:
    idea2023.2.2修改代码区中文字体
    docker创建容器相关命令【详细版】
    企业网络实验(vmware虚拟机充当DHCP服务器)所有IP全部保留,只为已知mac分配固定IP
    【BP回归预测】基于matlab思维进化算法优化BP神经网络回归预测【含Matlab源码 2031期】
    CDH大数据平台 30Cloudera Manager Console之superset之redis、ldap配置(markdown新版四)
    被DDOS了怎么办 要如何应对
    程序设计中遇到的程序不通、逻辑不顺等问题
    开题报告不知道怎么写?
    Gitlab CI/CD 入门教程
    [音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt +VS2022,都什么年代了还在写传统播放器?
  • 原文地址:https://blog.csdn.net/fangzelin5/article/details/128025268
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号