指針與字符串
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));
}
傳遞字符常量的指針
給應用程序傳遞參數

返回字符串
函數返回字符串時,它返回的實際是字符串的地址。重點是如何返回合法的地址,可以返回以下三種對象之一的引用:字符量/動態分配的內存/本地字符串變量。
函數指針與字符串



