关于c:c语言基础

7次阅读

共计 4115 个字符,预计需要花费 11 分钟才能阅读完成。

指令

#define _CRT_SECURE_NO_WARNINGS  // 保障 scanf 函数可能失常运行

#include <stdio.h>  // 函数 printf 应用
#include <string.h>  // 函数 strlen 应用

关键词

getchar()  
while(1)  
char  
short  
int 
long 
long long 
float 
double 
scanf
printf 
extern 
const 
arr[](数组)
strlen

模板

// 编写代码的文件

#include <stdio.h>  // 编译预处理指令

//main 函数是程序的入口
//main 函数有且只有一个

int main()  // 定义主函数
{  // 函数开始的标记
    printf("hello world");  // 输入所指定的一行信息

​    // 避免程序闪退,咱们要观看运行后果

​    // getchar();  // 获取一个字符,不输出就会始终期待
​    // 或
​    // while(1);  // 通过死循环来卡住程序,避免闪退
​    return 0;  // 函数执行结束时返回函数值 0

}  // 函数完结的标记

数据类型

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

数据类型所占内存空间的大小

{printf("%d\n", sizeof(char);  //1
    printf("%d\n", sizeof(short);  //2
    printf("%d\n", sizeof(int);  //4
    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;  // 完结
}

计算机中的单位

bit(比特位)-->byte(字节)-->kb-->mb-->gb-->tb-->pb

1byte = 8bit

1kb = 1024byte

1mb = 1024kb 

1gb = 1024mb

1tb = 1024gb

1pb = 1024tb 

类型的应用

{
    // 类型 变量 = 数据

​    char = 'w';    

​    int age = 20;

​    return 0;  // 完结
}

全局变量和局部变量

#include <stdio.h>  // 预处理指令

int num = 10;  // 全局变量
int main()  // 主函数
{
    int num = 10; // 局部变量

​    printf("num=%d\n", num);  // 全局变量名与局部变量名雷同时,部分优先

​    return 0;  // 完结
}

全局变量 – {}内部定义的变量

局部变量 – {}外部定义的变量

{}内不能定义雷同的变量名

不倡议全局变量名与局部变量名一样

变量的应用

{
    // 初始化
    int num_1 = 0;
    int num_2 = 0;

    // 输出函数
    scanf("%d %d", &num_1, &num_2);

    // 求和
    int sum = num_1 + num_2;

    // 输入函数
    printf("%d\n", sum);

    return 0;  // 完结
}

在源文件的第一行放

#define  _CRT_SECURE_NO_WARNINGS  // 保障 scanf 函数可能失常运行

在 VS 工程中创立新的.c 或者.cpp 文件的时候,都是拷贝 newc++file.cpp 这个文件的!在此文件增加的数据,创立新源文件都会存在!

办法:在 VS 的装置门路下有一个文件 newc++file.cpp 的文件,通过 everything 搜寻查找到并关上门路,复制此文件到桌面批改,批改后替换原文件

变量的作用域

局部变量

​ 局部变量的作用域是:变量所在的部分范畴

全局变量

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

​ 申明来自内部的符号(都是源文件)
extern int num;

变量生命周期

局部变量

​ 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期完结

全局变量

​ 全副变量的生命周期是:整个程序的生命周期

常量的分类

#define _CRT_SECURE_NO_WARNINGS  // 保障 scanf 函数可能失常运行

#include <stdio.h>  // 预处理指令

// 字面常量
//const 润饰的常变量
//define 定义的标识符常量
// 枚举常量

//define 定义的标识符常量(在这里定义)
#define MAX 100
#define STR "abcdef"

// 枚举常量(在这里定义)
enum Color
{    
    // 这三个就是枚举常量
    RED,
    GREEN,
    BLUE
};
enum Sex
{
    // 这三个就是枚举常量
    MALE,
    FEMALE,
    SECRET
};

int main()  // 主函数
{

    //int num = 10;  // 字面常量

    //const 润饰的 num,实质是变量,然而不能间接批改,有常量的属性
    const int num = 10;  //const 润饰的常变量
    //num = 20;  //err, 有 const 润饰,num 不能被批改
    printf("%d\n", num);  //10
    
    //define 定义的标识符常量(在这里应用)
    printf("%d\n", MAX);  //100
    int num_1 = MAX;
    printf("%d\n", num_1);  //100
    printf("%s\n", STR);  //abcdef

    // 枚举常量(在这里应用)
    // 三原色  Red  Green Blue
    // 创立一个变量
    int num_2 = 10;
    enum Color num_3 = RED;

    return 0;  // 完结
}

字符串

        % c        打印字符
        % s        打印字符串
        % d        打印整型
        % f        打印 float 类型的数据
        % lf    打印 double 类型的数据
        % zu    打印 sizeof 的返回值
#define _CRT_SECURE_NO_WARNINGS  // 保障 scanf 函数可能失常运行

#include <stdio.h>  // 函数 printf 应用
#include <string.h>  // 函数 strlen 应用

int main()  // 主函数
{
    //char 字符类型 单引号是字符,双引号是字符串
    char num = 'w';  // 字符


    //"abcdef" 字符串  arr[] 数组
    // 字符串能够间接应用 printf()打印
    // 晓得或者限度字符串长度,行将数值填写于 [] 中
    // 不晓得则为空,依据字符串长度主动调整

    // 查看值: 点击 F10(逐过程), 晓得 return0 --> 调试 --> 窗口 --> 监督 --> 1,2,3,4 都能够, 查看后果 arr 会多一个值:'\0'
    // \0 示意字符串完结,并不在字符串内容中
    char arr[ ] = "abcdef";  //a b c d e f \0
    char arr_1[] = { 'a', 'b', 'c', 'd', 'e', 'f'};  //a b c d e f
    char arr_2[] = { 'a', 'b', 'c', 'd', 'e', 'f','\0'};  //a b c d e f \0

    // 字符串只有遇到 \0 才会完结(\0 的重要性一)
    printf("%s\n", arr);  //abcdef
    //printf("%s\n", arr_1);  //abcdef 烫烫烫烫烫 abcdef
    printf("%s\n", arr_2);  //abcdef

    // 求字符串长度的一个函数  头文件 string.h
    int len = strlen("abc");
    printf("%d\n", len);  //3

    //(\0 的重要性二)
    printf("%d\n", strlen(arr));  //6
    printf("%d\n", strlen(arr_1));  //22
    printf("%d\n", strlen(arr_2));  //6

    return 0;  // 完结
}

转义字符

转义字符在字符串中仅示意一个长度,即一个字符

        \ ?            在书写间断多个问号时应用,避免他们被解析成三字母词
        \'用于示意字符常量'
        \"            用于示意一个字符串外部的双引号
        \\            用于示意一个反斜杠,避免它被解释为一个转义序列符
        \a            正告字符,蜂鸣
        \b            退格符
        \f            进纸符
        \n            换行
        \0            字符串终止
        \r            回车
        \t            程度制表符
        \v            垂直制表符
        \ddd        ddd 示意 1 - 3 个八进制的数字。如: \130(八进制)->X(ASCII 值)
        \xdd        dd 示意 2 个十六进制数字。如 : \x -> 300

ASCII 编码

{
    //\ 本义符 转变了字符原来的意思
    
    //\?  ??) => ]  三字母词 当初编译器极少有
    //printf("%s\n", "(are you ok\?\?)");  //(are you ok??)
    //printf("%s\n", "(are you ok??)");  //(are you ok]

    //\'//printf("%c\n",'\'');  //'
    //printf("%c\n", 'w'');  //err

    //\"//printf("%s\n","ab\"c");  //ab"c
    //printf("%c\n", "ab"c");  //err

    //\\

    //printf("ab\\0c");  //ab\0c
    //printf("ab\0c");  //ab

    //\a
    //printf("\a");  // 会有零碎提示音

    //\b,\f 和 \v 没有什么用
    //\n 换行
    //printf("abc\n");  //abc
    //printf("abcn");  //abcn

    //\0  只取 \0 以前的字符串
    //printf("abc\0def");  //abc

    //\r  只取 \r 当前的字符串
    //printf("abc\rdef");  //def

    //\t  从结尾到第 8 位
    //printf("ab\\tcdef\n");  //ab\tcdef
    //printf("ab\tcdef");  //ab      def

    //\ddd
    // 八进制的 130
    //printf("%c\n", '\130');  //X

    //\xdd
    // 先将 16 进制的 30 转化为十进制,再对照 ASCII 表
    printf("%c\n", '\x30');  //0

    return 0;  // 完结
}

正文

{// c 语言的正文格调(嵌套正文时有缺点)

    /*
    prinf("hello world")
    */

    //c++ 的正文格调(倡议)

    // 这段代码不要了就正文(第一种正文,即不要运行)
    //printf("%s\n", "NO!")

    // 创立指针变量 p,并赋值为 NULL(第二种正文,即解释此段代码的意思)
    int* p = NULL;

    return 0;  // 完结
}
正文完
 0