• 总结了一些指针易出错的常见问题(三)


    指针与字符串

      NULL和NUL区别:前者用来表示特殊的指针((void*)0),而NUL是一个char(),不可混用。

      字符常量:单引号;字符串:双引号;

      字符串的声明方式:字面量、字符数组、指针。

        字符串字面量池:

          

      字符串初始化 

        初始化char数组:   char header[]="Media Player";

        

        strcpy函数初始化数组

           char header[13];

          strcpy(header, "Meadia Player");

      2.初始化char指针

        char *header;初始化这个字符串的常见方法是使用malloc和strcpy函数分配内存并将字面量复制到字符串中。

          char *header=(char*) malloc(strlen("Media Player")+1);

             strcpy(header, "Meadia Player");

     

      区别sizeof与strlen:

      标准输入初始化字符串

      标准字符串操作

         

          

    #include<stdio.h>
    #include<stdlib.h>
    #include"string.h"
    int main()
    {
         char* error="ERROR:";
         char* errorMessage="NOT Enough memory";
         char* buffer=(char*)malloc(strlen(error)+strlen(errorMessage)+1);
         strcpy(buffer,error);
         strcat(buffer, errorMessage);
        printf("%s",error);
        printf("%s
    ",errorMessage);
    
     } 

    传递字符串

      

    #include<stdio.h>
    #include<stdlib.h>
    #include"string.h"
    
    size_t stringLength(char* string)
    {
        size_t length = 0;
        while(*(string++))
        {
            length++;
        }
        return length;
     } 
    int main()
    {
         char* error="ERROR: ";
         char* errorMessage="NOT Enough memory";
         char* buffer=(char*)malloc(strlen(error)+strlen(errorMessage)+1);
         strcpy(buffer,error);
         strcat(buffer, errorMessage);
        printf("%s
    ",buffer);
        printf("%s
    ",error);
        printf("%s
    ",errorMessage);
        printf("%d
    ",buffer);
        printf("%d
    ",stringLength(buffer));
     } 

    传递字符常量的指针

    给应用程序传递参数

    返回字符串

      函数返回字符串时,它返回的实际是字符串的地址。重点是如何返回合法的地址,可以返回以下三种对象之一的引用:字符量/动态分配的内存/本地字符串变量。

    函数指针与字符串

  • 相关阅读:
    Android的读写文件及权限设置
    surfaceView和View的区别
    git的常见问题
    APP的缓存文件放在哪里?
    AndroidStudio遇到过的问题
    订单和支付状态不同步解决方法
    支付宝支付不成功原因
    格式化输出%s和%S的区别
    Android SDK更新下载失败以及Studio首次安装取消自动下载SDK
    SPOJ 104 HIGH
  • 原文地址:https://www.cnblogs.com/iloverain/p/5608302.html
Copyright © 2020-2023  润新知