zoukankan      html  css  js  c++  java
  • C语言中的字符数组和字符串

    在C语言中,没有字符串类型,但是可以通过字符数组来模拟字符串。

    字符串可以在栈上,堆上,静态区和常量区进行分配。

    char buf[50]  = "abc";

    char buf[] = "abc";

    对应于第一种,编译器会自动进行优化,也就是buf的前三个元素分别是“a”,“b”,“c”,从buf[3]到buf[49]都是“”

    对于第二种,编译器会自动推断出元素的长度,因此第二种仅仅相当于是第一种的前4个字符。

    上面两种都称为C 类型的字符串,这是因为它们都是以""结尾的。

    char buf[50] = {"a","b","c"};

    char bud[] = {"a","b","c"};

    对于第一种情况,编译器的优化方式和上面第一种是一样的。

    对于第二中情况,那就真的是长度为3的字符组数了,由于不是以0结尾,因此就不是C风格的字符数组。

    可以通过strlen函数求得字符串的长度,是不包括“”的。可以通过sizeof操作符求得字符串在内存中占的大小,是包括“”的。

  • 相关阅读:
    HashMap 和 Hashtable 的区别
    提高利用运行(安装)内存
    MyEclipse、Hbuilder、Idea快捷键
    本地安装MySQL详细教程
    MyEclipse/Eclipse相关设置
    MyEclipse 10导入JDK1.7或1.8
    Oracle视图(和Mysq一样l)
    Oracle事务
    MySql综合知识汇总
    Mysql存储过程
  • 原文地址:https://www.cnblogs.com/andyniu/p/7623065.html
Copyright © 2011-2022 走看看