C语言的初阶学习(一)

目录

一、数据类型

         1、内置类型 

         2、自定义类型

二、常量与变量

         1、常量

         2、变量

                        1、全局变量

                        2、局部变量

                        3、定义变量的方法

        3、变量的作用域和生命周期

三、关键字

        1、关键字 typedef

        2、关键字:static

四、字符串和ASCII编码

          1、字符串

          2、ASCII编码

五、转义字符和注释

          1、转义字符

          2、注释

六、语句和语句分类

          1、语句

          2、语句分类

七、操作符

          1、算术操作符

          2、赋值运算符

          3、单目操作符

           4、移位操作符

           5、位操作符

           6、关系操作符

            7、逻辑操作符

            8、条件操作符

            9、逗号表达式


一、数据类型

        首先类型指的是:相似数据所拥有的共同特征

         1、内置类型 

                 内置类型指的是C语言本身自带的,并且可以直接使用,如:字符型(char)、整型(int)、浮点型(float)、布尔型(bool)........

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数
//C语言有没有字符串类型

                类型的使用:

char ch = 'w';
int weight = 120;
int salary = 20000;

         2、自定义类型

                        可以自己创造想要的类型:数组、结构体、枚举、联合体......

二、常量与变量

        生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等) 有些值是可变的(比如:年龄,体重,薪资)。不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。

         1、常量

        C语言中的常量分为以下以下几种:

                1、字面常量

                2、const 修饰的常变量

                3、#define 定义的标识符常量

                4、枚举常量

#include <stdio.h>
//举例
enum Sex
{
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
    
    //#define的标识符常量 演示
 #define MAX 100
    printf("max = %d\n", MAX);
    
    //枚举常量演示
    printf("%d\n", MALE);
        printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
    //注:枚举常量的默认是从0开始,依次向下递增1的
    return 0;
}

     注: 上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。

         2、变量

                        1、全局变量

                                大括号外定义的变量就是全局变量

                        2、局部变量

                                大括号内定义的变量就是局部变量

                        3、定义变量的方法
int age = 150;
float weight = 45.5f;
char ch = 'w';

        注意:        只能由字母(包括大写和小写)、数字和下划线( _ )组成。 不能以数字开头。 长度不能超过63个字符。 变量名中区分大小写的。 变量名不能使用关键字。

        总结:     上面的局部变量global变量的定义其实没有什么问题的!

                        当局部变量和全局变量同名的时候,局部变量优先使用。

        3、变量的作用域和生命周期

                作用域 作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用 的而限定这个名字的可用性的代码范围就是这个名字的作用域。

                        1. 局部变量的作用域是变量所在的局部范围。

                        2. 全局变量的作用域是整个工程。

                生命周期 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

                        1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

                        2. 全局变量的生命周期是:整个程序的生命周期。

三、关键字

        C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。

           常见关键字:

        1、关键字 typedef

                 顾名思义是类型定义,这里应该理解为类型重命名。

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
}

        2、关键字:static

                在C语言中: static是用来修饰变量和函数的

            1. 修饰局部变量-称为静态局部变量            

//代码1
#include <stdio.h>
void test()
{
    int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
 int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}
//代码2
#include <stdio.h>
void test()
{
    //static修饰局部变量
    static int i = 0;
    i++;
    printf("%d ", i);
}
int main()
{
int i = 0;
    for(i=0; i<10; i++)
   {
        test();
   }
    return 0;
}

        对比代码1和代码2的效果理解static修饰局部变量的意义。

        结论: static修饰局部变量改变了变量的生命周期 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。

            2. 修饰全局变量-称为静态全局变量

//代码1
//add.c
int g_val = 2018;
//test.c
int main()
{
    printf("%d\n", g_val);
    return 0;
}
//代码2
//add.c
static int g_val = 2018;
//test.c
int main()
{
    printf("%d\n", g_val);
    return 0;
}

        代码1正常,代码2在编译的时候会出现连接性错误。

        结论: 一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使 用。

            3. 修饰函数-称为静态函数

        

//代码1
//add.c
int Add(int x, int y)
{
    return x+y;
}
//test.c
int main()
{
    printf("%d\n", Add(2, 3));
    return 0;
}
//代码2
//add.c
static int Add(int x, int y)
{
    return x+y;
}
//test.c
int main()
{
    printf("%d\n", Add(2, 3));
    return 0;
}

       代码1正常,代码2在编译的时候会出现连接性错误.

       结论: 一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

四、字符串和ASCII编码

          1、字符串

        

"hello world\0"

        这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

        注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
    char arr1[] = "bit";
    char arr2[] = {'b', 'i', 't'};
    char arr3[] = {'b', 'i', 't', '\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}

          2、ASCII编码

        以下是部分的ASCII编码:

五、转义字符和注释

          1、转义字符

        假如我们要在屏幕上打印一个目录: c:\code\test.c 我们该如何写代码?

#include <stdio.h>
int main()
{
 printf("c:\code\test.c\n");
    return 0;
}

        运行结果如下:

        这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。

        下面看一些转义字符。

#include <stdio.h>
int main()
{
    //问题1:在屏幕上打印一个单引号',怎么做?
    //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
    printf("%c\n", '\'');
    printf("%s\n", "\"");
    return 0;
}

          2、注释

        1. 代码中有不需要的代码可以直接删除,也可以注释掉

        2. 代码中有些代码比较难懂,可以加一下注释文字

        如我们上面的代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
	char arr1[] = "bit";
	char arr2[] = { 'b', 'i', 't' };
	char arr3[] = { 'b', 'i', 't', '\0' };
	printf("%s\n", arr1); //打印数组arr1的内容
	printf("%s\n", arr2); //打印数组arr2的内容
	printf("%s\n", arr3); //打印数组arr3的内容
	return 0;
}

        注释有两种风格:

                 C语言风格的注释 /*xxxxxx*/         缺陷:不能嵌套注释

                 C++风格的注释 //xxxxxxxx         可以注释一行也可以注释多行

六、语句和语句分类

          1、语句

         控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

          2、语句分类

        C语句可分为以下五类:

                1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句

七、操作符

          1、算术操作符

          2、赋值运算符

      

          3、单目操作符

           4、移位操作符

           5、位操作符

           6、关系操作符

            7、逻辑操作符

            8、条件操作符

            9、逗号表达式

                                蟹蟹大家的来访,你们的点赞关注都会是我接下来创作更优质文章的动力~✌🏻️

  • 54
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值