美文网首页
C 语言 字符串

C 语言 字符串

作者: 我本无邪 | 来源:发表于2017-01-16 16:52 被阅读0次

字符串;
字符串:有字符构成的一个集合
字符窜的定义: char string[10]
字符串的初始化:
char string [10]="hello";
char string []="hello";
char string[10]={"hello"};
char string *p="hello";

如下写法是非法的
char *const string;
char string[10];
string="hello";

以下写法是合法的
char *P=" hello"
p="word"

内存区域分配

1 栈区:自动局部变量,系统分配的空间
2 堆区:由程序员分配,调用malloc函数
3全局区(静态区;)全局变量,静态变量
4文字常量区:常量字符串
5代码区;二进制代码

5 字符串和指针的关系
由于所有的字符串都可以看成一位字符数组,所以和指针关系如上

6
strlen:长度,不算\0
strcpy:完全拷贝
strnpy:部分拷贝
strcat:完全拼接
strnpy:部分拼接
strcmp:比较
strnmp:部分比较

二 字符串数组
1>字符串数组:数组里面没存放的都是都是字符串
字符串数组的定义 :char [2][20]
字符串数组的初始化
char string[2][10]={{"hello"},{"nihao"}}
char string[2][10]={"hello"."nihao"};
char *p[2]={"hello""你好"];

作用域
1>定义:起作用的区域
2>变量按作作用域分
局部变量:函数内部定义的变量
全局变量:函数外部定义的变量
3变量按存储类型分
auto 自动;如果不写,默认是auto
staitic:静态

4 生命周期:有作用域和存储类型共同决定
自动局部变量A;由函数决定
自动全局变量有整个程序决定

 静态局部变量:有整个程序决定
静态全局变量:有单个文件决定

5 函数递归
1>函数递归:函数自己调用自己
2>递归不建议用的原因:
1>处理不好就会造成死循环
2>很占内存

6 结构体
1<结构体:多个不同类型变量的集合
2<结构体数据类型的定义:
struct person
{
成员变量1;
成员变量2;
........

      }

7结构体变量的定义 :struct Person p;

结构体变量的初始化;
struct Person p={"name",'m',123};
struct Person p1;
struct (p1.name,"name");
struct Person p2=p;

8:内存对齐的三个原则
(1)如果结构体里面所有的成员变量(成员属性)都是基本数据类型(int char,float,double 那么第一个成员变量从内存地址偏移量为0 开始分配,后面的成员变量从内存地址偏移量本身所占字节大小的最小倍数开始分配
(2) 如果结构体里面所有的成员变量不是基本数据类型;比如说:int arr[10];那么这个数组成员变量从哪日存地址偏移量是这个数组本书里面的元素的最大字节数的而倍速开始分配
(3) 最后收尾的时候,所占字节数要是最大成员变量的最小倍数

结构体嵌套:结构体里面嵌套结构体

struct Birth
{
int year;
int month;
int day;
};
struct person
{
zhar name[10];
int age;
struct Birth brith;
};

相关文章

  • C语言- 字符、字符数组

    字符数组和字符串 C语言中没有字符串这种数据类型,C语言中通过char型数组来替代字符串的功能。C语言中的字符串一...

  • 2018-05-13

    C语言:c语言中没有字符串类型,也没有字符串变量,字符串是放在字符型数组中的。 C语言数变量类型:整型、浮点型、v...

  • Redis 源码简洁剖析 02 - SDS 字符串

    C 语言的字符串函数 C 语言 string 函数[https://devdocs.io/c-strings/],...

  • C++11新特性(20)-用string对象处理文件名

    C风格字符串 从C语言开始,就已经实现了对字符串的支持。为了处理C风格字符串,C语言标准库提供了一组函数,它们被定...

  • C语言 字符串反转

    C语言 之 字符串反转

  • iOS开发系列文章[转]

    C语言 iOS开发系列--C语言之基础知识 iOS开发系列--C语言之数组和字符串 iOS开发系列--C语言之指针...

  • ==大疆-字符串最大

    字符串最大时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;...

  • Redis数据结构

    1 简单动态字符串 Redis 是用 C 语言写的,但是对于Redis的字符串,却不是 C 语言中的字符串(即以空...

  • Redis5.x底层数据结构之——字符串

    1 简单动态字符串 Redis是用C语言写的,但是Redis的字符串不是 C 语言中的字符串(即以空字符’\0’结...

  • 字符串类常用操作方法

    一、不可变字符串(NSString) // 在C语言中,使用ASCII编码的字符作为字符串,并且C语言中,并没有...

网友评论

      本文标题:C 语言 字符串

      本文链接:https://www.haomeiwen.com/subject/tsropttx.html