c语言字符串详解

好久没写过c程序,都忘记了c程序中的字符串的含义。

今天问过而知新,c语言字符串其实就是一个字符数组,比如char* ptr = "hello world",其实就是ptr[] = {'h','e','l','l','0',' ','w','o','r','l','d','\0'}; 声明一个字符串会自动在末尾

添加一个\0 不需要人工干预。

总结如下: 一个字符串必须要一个 \0 结尾
不然就会越界.
如果 是字符数组 那么 就必须在 最后一个元素 赋值为 "\0" 而不是" 0"
如果是 字符串 对象 赋值给 字符指针
"abcd" 可以省略 \0 那是因为 C 语言会自动处理 这个地址.末尾加上 \0

#include <stdio.h>

int main()
{
char* ptr = "hello world!";
int len = sizeof(ptr);
printf("len = %d\n",len);
len = 0;
while(*ptr != '\0'){
ptr++;
len++;
}
printf("len = %d\n",len);
char* str = NULL;
len = sizeof(str);
printf("len = %d\n",len);
return 0;
}

原文地址:https://www.cnblogs.com/GODYCA/p/2851145.html