关于c:c语言基础

指令

#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;  //完结
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理