初识变量与常量与字符串

发布于:2023-02-14 ⋅ 阅读:(558) ⋅ 点赞:(0)

首先是变量分为:1.局部变量 2.全局变量

而全局变量与局部变量也很好分辨,位于主函数外则为全局变量,同理位于主函数{}内则为局部变量。

   如   int a =10

        int main()
{
    int b = 666;

   return 0;

} 这里的a为全局变量,b为局部变量

关于变量的作用域与生命周期:

全局变量的作用域为整个工程文件,生命周期就是整个程序的生命周期

Ps:全局变量跨源文件使用时要声明一下(extern)

而局部变量的作用域则只为{}内,生命周期也只在{}内

int main()
{
    int a = 666;

     {int b=114514;

      }

   return 0;

}  这里a的作用域为第一个大括号到最后一个大括号,包括了中间的大括号。而b的作用域只有中间的大括号。

其次是常量,常量可分为

                 1.字面常量 如10 145 'a' "adfafsdf"
                 2.const修饰的常变量
                         如const int num = 10;注意此时num虽然为常变量,但它的本质还是变量
                 3.#define定义的标识符常量
                 4.枚举常量 可以一一列举的常量 如abo血型 性别 有固定选项

枚举常量写法 如enum ABO
{
    A,
    B,
    AB,
    O
};

最后是字符串 字符串即 一串字符如"dfawefagae"  且字符串后面隐藏了一个\0 \0是字符串的结束标志

当我们创建一个字符串char arr[]="sdfawegf";时 使用监视就会发现明明只有8个字符却显示又9个元素最有一个是\0

我们再随手创建两个字符串char arr1[] = "abc";
                                           char arr2[] = { 'a','b','c'};

使用printf("12:%d\n", strlen(arr1));
        printf("13:%d\n", strlen(arr2));来看他们的字符串长度

 

结果arr1显示3,arr2显示33 明明都只有abc三个元素为什么会如此呢

这是因为arr02没有\0 于是就不会终止 刚好在内存33这个位置碰到\0就停止了

当我们给char arr2[] = { 'a','b','c',‘\0’};这样手动加上\0后则

 

两个字符串长度都为3。这就说明了\0是字符串的终止符号。