zoukankan      html  css  js  c++  java
  • C语言-数组与指针 字符与字符串

    1 字符与字符串:char c='a'而不能写出char c="a" //字符变量用单引号'',而字符串用双引号。

    2 字符数组与字符指针的初始化:

      char s[10]={0}, *p

         strcpy(s,"hello word ");或者p="hello word ";

         而不能用s="hello word "y因s数组名表示数组的首地址是个常量。

      字符数组的0初始化:

              方法1:char s[10]={0};

              方法2: memset(s,0,10);

    方法3: for循环中初始化:

     int i,s[10],*p;       或者    int i,s[10],*p;  

     p=s                               for(p=a;p<a+10;p++)

    for(i=0;i<10;i++)               scanf("%d",p);

    scanf(:%d”,p++);

    而不能:

    int i,a[10];

    for (i=0;i<10;i++)

    scanf("%d",a++);//数组的首地址是不能改变的。

    4字符数组 字符指针 字符串 strlen() sizeof

    4.1字符数组 :char a[]="string"或者={‘s','t','r','i','n','g'}

    4.2字符串:系统遇到字符串都会在末尾加上结束符“”

    4.3 strlen(char *str):计算遇到“"之前的字符串的长度的函数,参数必须是字符串,计算的结果不包括结束符“",因此计算的是字符串中字符的个数。

    4.4 sizeof():计算常量或变量存储类型的字节数,它是宏计算符不是函数。

    4.5 字符指针:char *s  指针通常为4个字节

    所以 char* ss = "0123456789";
    sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针
    sizeof(*ss) 结果 1 ===》*ss是第一个字符,字符占1个字节

    char ss[] = "0123456789";
    sizeof(ss) 结果 11 ===》ss是数组,计算到位置,因此是10+1
    sizeof(*ss) 结果 1 ===》*ss是第一个字符

    char ss[100] = "0123456789";
    sizeof(ss) 结果是100 ===》ss表示在内存中的大小 100×1
    strlen(ss) 结果是10 ===》strlen是个函数内部实现是用一个循环计算到为止之前,不包括结束符

    int ss[100] = "0123456789";
    sizeof(ss) 结果 400 ===》ss表示再内存中的大小 100×4,32位机种int整形数据占4个字节
    strlen(ss) 错误 ===》strlen的参数只能是char* 且必须是以''''结尾的

    char q[]="abc";
    char p[]="a ";
    sizeof(q),sizeof(p),strlen(q),strlen(p);
    结果是 4 3 3 2    

  • 相关阅读:
    zend studio常见问题解答
    瀑布流插件(jquery.masonry.js)
    仿jQuery中undelegate()方法功能的函数
    Linux 常用命令
    linux debugfs 找回rm 的文件
    jq 添加和移除样式
    CentOS 搭建 nginx python django web server
    Linux vim 配置文件
    CentOS 安装python 3.3.2
    login.defs和shadow文件区别
  • 原文地址:https://www.cnblogs.com/jieruishu/p/3877665.html
Copyright © 2011-2022 走看看