从语法基础开始——C语言基础入门篇(一)

前言:

在上篇我已经介绍了关于C语言相关编译器的配置和使用,本周我开始正式学习C语言的相关语法基础和程序结构,这里对其中部分重点内容进行记录,作为可参考的学习笔记,既是复习,也会补充一些新内容,欢迎大家参考补充。

1. C语言语法基础

1.1 初识数据类型

1.1.1 数据类型展示:

char-字符数据类型

short-短整型

int-整型(整数-整型)

long-长整型

long long-更长的整型

float-单精度浮点数 (小数-浮点型)

double-双精度浮点数

1.1.2 相关代码展示:

int main()
{
   
    //char-字符数据类型
    char ch = 'a';
    
    //int-整型
    int age = 18;
    
    //short-短整型
    short num = 10;
    
    //long-长整型
    //long long-更长的整型

    //float-单精度浮点数 
    float weight = 50.7;

    //double-双精度浮点数
    double pie = 3.14;

    printf("%d\n", age);
    
    return 0;
} 

1.1.3 不同数据类型大小:

这里介绍一个关键字帮助我们解决这个问题:

sizeof—关键字—操作符—计算类型或者变量所占空间的大小

于是可以通过该关键字分别计算不同数据类型大小

int main()
{    
    
    printf("%d\n", sizeof(char));//1
    printf("%d\n", sizeof(int));//4
    printf("%d\n", sizeof(short));//2
    printf("%d\n", sizeof(long));//4
    printf("%d\n", sizeof(long long));//8
    printf("%d\n", sizeof(float));//4
    printf("%d\n", sizeof(double));//8

    return 0;
}

其中sizeof的单位为字节=byte

代码后注释即为计算结果

且C语言标准: sizeof(long)>=sizeof(int) 所以int类型大小与long类型相同

1.1.4 拓展:

计算机中的单位

bit—比特位

byte—字节 = 8 bit

kb = 1024 byte

mb = 1024 kb

gb = 1024 mb

tb = 1024 gb

pb = 1024 tb

printf在打印数据的时候可以指定打印的格式,如:

printf("%d\n", 原神);//其中%d即为确定格式

相关格式介绍:

%d - 整型

%f - float

%lf - double

%s - 字符串

%a - 字符

1.2 初识常量变量

1.2.1 变量介绍:

变量分为全局变量局部变量

全局变量 — {} 外部定义的变量

局部变量 — {} 内部定义的变量

代码展示:

//全局变量 - {}外部定义的变量
int b = 100;
//b 为全局变量

int a = 200;

int main ()
{
    
    //局部变量 - {}内部定义的变量
    int a = 10;
    //a 为局部变量
     
    printf("%d", a);

    //当局部变量与全局变量名字冲突时,局部优先
    return 0;
}

使用实例:

//求两整数和
//scanf函数是输入函数

int sum = 0;

int main()
{
    
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    sum = a + b;
    printf("sum = %d\n", sum);

    return 0;
}

1.2.2 常量介绍:

常量分为:

1. 字面常量

2 . const修饰的常变量

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

4.枚举常量:可以一一列举的常量

下面进入代码实例分析:

int main() 
{ 
    
    //1. 字面常量:  
    3.14;
    10;
    'a';
    "abcdef";
    
    //2. const修饰的常变量:
    const num  = 10;//num就是常变量 - 具有常属性(不能被改变的属性)
    num = 20;
    printf("num = %d\n", num);

    int arr[10] = {0};//10个元素
    const n = 10;
    int arr2[n] = {0};//n实际还是变量,这里是不行的

    //3. #define 定义的标识符常量:
    // #define MAX = 20000;//error,应当放在主函数外

    int n = MAX;
    printf("n = %d\n", n);
    

    return 0;
}

                            
//性别
enum sex
{
    //这种枚举类型的变量的未来的可能取值
    MALE = 3,//赋初值
    FEMALE,
    FEMBOY
} ;

int main() 
{
    //4.枚举常量:可以一一列举的常量

    enum sex s = FEMBOY;
    printf("%d\n", MALE);
    printf("%d\n", FEMALE);
    printf("%d\n", FEMBOY);

    return 0;
}

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

局部变量的作用域:变量所在的局部范围

全局变量的作用域:整个工程

代码实例:

int g_val = 2024;//全局变量

//extern int g_val;

int main()
{
    printf("1:%d\n", g_val);
    {
        printf("2:%d\n", g_val);
        int a = 10;//局部变量
        printf("a = %d\n", a);
    }
    printf("3:%d\n", g_val);
    return 0;   
}

变量的生命周期:变量从创建到销毁之间的时间段

局部变量的生命周期:进入局部范围生命周期开始,出局部范围生命周期结束

全局变量的生命周期:整个程序的生命周期

1.3 字符串

1.3.1 定义:

"chongqing\n"

这种由双引号引起来的一串字符称为字符串字面值,简称字符串。

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

 1.3.2 代码示例:

int main() 
{
    char arr1[] = "abc";
    char arr2[] = {'a', 'b', 'c', '\0'};

    //研究字符串长度
    int len = strlen("abc");//string length
    int len2 = strlen('a', 'b', 'c');

    printf("%d\n", strlen(arr1));
    printf("%d\n", strlen(arr2));
    //printf("%d\n", len2);
    //printf("%s\n", arr1);
    //printf("%s\n", arr2);

    return 0;
}

1.4 转义字符

\?:在输入连续多个字符时使用,防止他们被解析成三字母词,如" ??) "可被某些编译器解析为" [ "

\':用于表示字符常量',如

int main()
{
	printf("%c\n", '\'');
	return 0;
}

\":用于表示一个字符串内部的双引号,如

int main()
{
	printf("%s\n", "\"");
	return 0;
}

\\:用于表示一个反斜杠,防止他被解释为一个转义序列符,如

int main()
{
	printf("%s\n", "\\");
	return 0;
}

\a:警告字符,蜂鸣,如

int main()
{
	printf("%s\n", "\a\a\a");
	return 0;
}

\b:退格符
\f:进纸符
\n:换行
\t:水平制表符
\v:垂直制表符

\ddd:ddd表示一到三个八进制的数字,如:\1 30 X
\xdd:dd表示两个十六进制的数字,如:\x30 0

实例分析:

int main()
{
	printf("%c", '/130');//打印结果为X
	//八进制的130是十进制的88,而X的ASCII码值为88
	//每一个字符都对应着一个值——ASCII码值 如:A--65 B--66 a--97 b--98
	printf("%c\n", '\x30');//打印结果为0
	//十六进制的30是十进制的48,而0的ASCII码值为48
	//转义字符在计数时算作一个字符
	return 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值