pragma mark 字符串的基本概念
pragma mark 概念
pragma mark 代码
#include <stdio.h>
int main()
{
#warning 字符串的原理
/*
// 用双引号引起来的就是字符串
printf("Hello world!\n");
// 字符串是由什么组成的? 字符"串",羊肉"串"
// 如何定义字符串变量,由于字符串是同一种类型的数据组成,并且是有序的\
而数组就是用于存储很多同一一种类型的有序数据,所以可以使用数组保存字符串
// 注意: 字符串变量和普通的字符数组有一定的区别
// C语言规定,字符串必须以\0结尾(作为字符串的结束符号),所以字符串变量的元素个数比字符数组的元素个数一个 \0
char str[] = "lyh"; // 字符串变量 l y h \0
printf("str size = %lu\n",sizeof(str));
char charValues[] = {'l','y','h'};//字符数组 , 这个并不是字符串,而是字符数组
printf("charValue size = %lu\n",sizeof(charValues));
int num = 10;
float floatValue = 10.1f;
double doubleValue = 9.9;
char charValue = 'l';
printf("%i,%f,%lf,%c\n",num,floatValue,doubleValue,charValue);
*/
#warning 字符串和字符数组 %s的原理
/*
// 内存寻址从大到小
char str[] = "lyh"; // 字符串变量
char str2[] = {'h','\0','t','h'}; // 字符数组
// 如何输出字符串变量, 占位符 %s
// str 数组的名称,数组的名称就是数组的地址
printf("str = %s\n",str2);
// %s的原理,从传入的"地址"开始 逐个取出,直到遇到\0为止
*/
#warning 字符串的注意点
// 字符串注意点,字符串的初始化
char str1[] = "lyh";
char str2[] = {'l','y','h','\0'};
// 部分初始化,部分初始化中,没有被初始化的元素默认是0
// \0对应的ASCII 0
char str3[10] = {'l','y','h'}; // lyh 0000000
char str4[3] = {'l','y','h'}; // 改方式不是字符串,而是字符数组,因为没有\0
char str5[] = {'l','y','h'};
// 需要明白的一点就是字符串以\0结尾,没有\0就不是字符串
// 只要是用双引号扩起来的都是字符串
// 字符串的本质就是数组
char str6[] = "lyh";
str6[1] = 'g';
printf("%s\n",str6);
return 0;
}