前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >总结了一些指针易出错的常见问题(三)

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

作者头像
互联网金融打杂
发布2018-04-03 12:06:21
6160
发布2018-04-03 12:06:21
举报

指针与字符串

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

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

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

    字符串字面量池:

  字符串初始化 

    初始化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\n",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\n",buffer);
    printf("%s\n",error);
    printf("%s\n",errorMessage);
    printf("%d\n",buffer);
    printf("%d\n",stringLength(buffer));
 } 

传递字符常量的指针

给应用程序传递参数

返回字符串

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

函数指针与字符串

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-06-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档