zoukankan      html  css  js  c++  java
  • 字符指针和字符数组

    2017年12月19日17:12:10
    字符指针和字符数组的整理
     
    1.
    字符数组是由若干个元素组成,每个元素中存放的是一个字符,而字符指针变量中存放的是第一个字符的地址

    2.
    char * a;a = "I love China";指针变量可以赋值,但是数组名不可以这样赋值。
    char a[12]; a[0]='I';合法的。 a = "I love China";//不合法!!!

    3.char *p = "I love China";//定义指针变量p,并且指向第一个元素I的地址。
     等价于:char * a;a = "I love china!";
      但是数组:
       char str[14]="I love China!";
     不等价于char str[14];str[]="I love China"; //报错!!!!

    4.字符数组分配若干个存储单元,但是指针变量值分配一个存储单元。

    5.指针变量的值是可以改变的,而数组名代表一个固定的值(数组首元素的地址),不能改变。
     eg: char *a = "I love China";
      a = a+7;//正确,指向C的地址
      char str[]={"I love China"};
      str = str+7;//报错!!!
      

    6.字符数组中的各元素的值是可以改变的(可以对他们再赋值),但字符指针变量指向的字符串常量中的
     内容是不可以被取代的(不能再对它进行赋值)。
     char a[] ="House";
     char * b="House";
     a[2] = 'r';//合法,r取代a数组元素中a[2]的原值u
     b[2]='r';//非法,字符串常量是不能改变的
     

    7.用指针变量指向的一个格式字符串,可以用它代替printf函数中的格式字符串。
     char * format;
     format = "a = %d,b=%f ";//等价于:char format[]="a=%d,b=%f ";
     printf("format,a,b");
     注意:定义数组时初始化或逐个对元素赋值,而不能用赋值语句对数组整体赋值
      eg:char format[];
      format="a=%d,b=%d ";

  • 相关阅读:
    快速读取txt文档
    ASP.NET中缓存非SQLServer数据库数据
    查看linq to sql 生成的sql 语句
    跟树有关的数据结构学习系列之概览
    Linux安装软件包时的“依赖关系树”算法(C#)
    Go调度器介绍和容易忽视的问题
    搞懂Go垃圾回收
    Go“一个包含nil指针的接口不是nil接口”踩坑
    Go slice:切片的“陷阱”和本质
    C#调用ODBC连接SQL Server数据库的存储过程
  • 原文地址:https://www.cnblogs.com/healy/p/8072687.html
Copyright © 2011-2022 走看看