C语言-20230805

积分三换 / 2023-08-06 / 原文

写代码步骤:

一个项目只有有一个main函数!,否则会报错

1.main函数。程序保存为.c

//int——返回类型(整型),main——函数名,{ }——函数体。

#include <stdio.h>

int main()

{

//在屏幕打出hello world

printf('hello world\n');//printf——库函数——屏幕打印信息,需要引用头文件stdio.h

// \n表示换行

return 0; 

}

2.数据类型

char  //字符数据类型,1 byte

short  //短整型,2 byte

int  //整形, 4 byte

long  //长整型,4 byte

longlong  //更长的整形,8 byte

float  //单精度浮点数,4 byte

double  //双精度浮点数,8 byte

 1字节(byte) = 8比特(bit)

常量、变量(全局,局部)

%d 整型

%f float

%lf double

#define _CRT_SECURE_NO_WARNINGS 1//防止vs警告scanf
#include <stdio.h>
int age = 1;//此处age为全局变量
int main()
{
    char ch = 'a';//char字符类型
    int age = 20;//整形,此处age为局部变量。当局部和全局变量名字一样,局部优先
    short num = 100;//短整型,long,longlong
    float weight = 66.6;//浮点型, double
    printf("%d\n", 100);//打印整数
    printf("%d\n", sizeof(int));//sizeof - 关键字 - 操作符 - 计算类型或者变量所占空间的大小
    //---------------------
    int x = 0;
    int y = 0;
    int sum = 0;
    scanf("%d %d", &x, &y);//需要输入x的数值,enter后输入y的值,最后会自动给出sum
    sum = x + y;//求和
    printf("sum = %d\n", sum);
    return 0;
}

要注意scanf是需要输入的,否则就是个白框!

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

局部变量:作用域为变量所在的局部范围,生命周期(变量的创建和销毁之间的时间段)同

全局变量的作用域:整个工程(项目),生命周期为整个程序

对于同一工程(项目),两个不同.c源文件,在一个文件中定义某变量int g_val后,在另一文件使用extern int g_val即可调用

 执行性代码如printf必须放在 { } 里,如main函数

#include <stdio.h>
int b = 2021;//全局变量
int main()
{
    printf("1:%d\n",b);//第1次打印b,成功
    {
        printf("2:%d\n", b);//第2次打印b,成功
        int a = 10;//{ }内为局部变量a的作用域,故在{ }外a无法打印
        printf("a = %d\n", a);
    }
    printf("3:%d\n", b);//第3次打印b,成功
    return 0;
}

4.常量

 1 #include <stdio.h>
 2 enum Sex//变量Sex的所有可能取值,其子集为常量
 3 {
 4     Male,//若此处改为Male=10,则后面打印Male为10,Female为11
 5     Female//常量
 6 };
 7 int main()
 8 {
 9     //---1.字面常量---
10     3.14;
11     10;
12     "a";
13     "abcdef";
14 
15     //---2.const修饰的常变量---
16     int num = 10;//前面加const 会使得num为常量导致不能改动,下一行报错
17     num = 20;
18     printf("num = %d\n", num);//输出num = 20
19 
20     int arr[10] = {0};//10个元素
21     //这里[ ]内必须为常量,如10,不能为const常变量,或者变量
22 
23     //---3.#define 定义的标识符常量---
24     #define MAX 10000//#define 定义的标识符常量MAX=10000
25     //若再写MAX = 20000;会报错,已给MAX常量赋值,不能重新赋值
26     int n = MAX;
27     printf("n = %d\n", n);
28 
29     //---4.枚举常量(可以一一列举的常量)---
30     //在第二行定义了枚举常量
31     printf("%d\n", Male);//第一个值默认输出为0
32     printf("%d\n", Female);//第二个值默认输出为1
33     return 0;
34 }