c语言初识指针之字符串小写判断 c语言定义字符串类型的关键字?
C语言中没有特殊的字符串类型。
通常放入一个指针或者一个字符数组,比如。
const char* ch
1.1 C语言没有原生字符串类型。
java、C#等很多高级语言都有字符串类型,有一个字符串来表示字符串。用法和int类似。您可以使用字符串s1 #34linux#34定义字符串类型的变量。
2)C语言中没有字符串类型,C语言中的字符串是通过字符指针间接实现的。
1.2 C语言使用指针管理字符串。
C语言中定义字符串的方法:char *p #34linux#34此时P被称为字符串,但实际上P只是一个字符指针(本质上是一个指针变量,只有P指向一个字符串的起始地址)。
1.3 C语言中字符串的本质:内存的一段,指针指向头部的地址,尾部固定。
1)字符串就是一串字符。现实中反映的字符是字符、符号、数字等使用的字符,编程中反映的字符是字符类型的变量。在C语言中,ASCII编码用于编程字符。编码后,一个字符可以用一个char变量来表示。字符串是多个字符的组合。
1.C语言中表示字符串的有两种:字符指针和字符数组。
2.字符指针代表一个字符串。
从编译器 ■观点:
比如char *p #34linux#34 p是字符指针,#34linux#34是字符串本身。当编译器遇到这种字符串表示时,它会将指针与字符串本身分开。字符指针p是一个变量并把它放在堆栈上,而字符串本身#34linux#34存储在代码段中,它的第一个地址赋给p。
从记忆的角度来看:
比如char *p #34linux#34会先在堆栈上为字符指针P打开一个4字节的空间,而#34linux#34字符串本身会在代码段中为其打开一个6字节的存储空间,并将存储空间的第一个地址赋给P。
3.一个字符数组代表一个字符串
从编译器 ■观点:
比如char a[] #34linux#34 a是一个字符数组,编译器会把它放到堆栈上,而#34linux#34字符串本身只存在于编译器中,也就是编译器只是用它来初始化字符数组A,然后丢弃它。
从记忆的角度来看:
例如,char a[] #34linux#34定义了一个字符数组A,它在堆栈上创建了一个6字节的存储空间,而#34linux因为x#34字符串本身只存在于编译器中,所以不需要为它开辟存储空间。
4.两种表示字符串的区别
字符数组本身就是一个数组,数组本身有自己的内存空间,可以用来存放东西;字符指针是一个指针,它总是只占用4个字节,而这4个字节可以 t被用来存储有效数据,所以我们只能把有效数据存储在别的地方,然后把第一个地址存储在p中。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。