c语言基础

指令

#define _CRT_SECURE_NO_WARNINGS  //保证scanf函数能够正常运行

#include   //函数printf使用
#include   //函数strlen使用

关键词

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

模板

//编写代码的文件

#include   //编译预处理指令

//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   //预处理指令

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   //预处理指令

//字面常量
//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   //函数printf使用
#include   //函数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编码
c语言基础_第1张图片

{
    //\ 转义符 转变了字符原来的意思
    
    //\?  ??) => ]  三字母词 现在编译器极少有
    //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;  //结束
}

你可能感兴趣的:(cc++)