码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-22 22:03:54      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

指针与字符串

  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));
 } 

传递字符常量的指针

给应用程序传递参数

技术分享

返回字符串

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

函数指针与字符串

技术分享

技术分享

技术分享

技术分享

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

标签:

原文地址:http://www.cnblogs.com/iloverain/p/5608302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!