1_C语言基础知识

数据类型

1.数据类型

char //字符数据类型 —%c

short //短整型

int //整型 —%d

long //长整型 —%ld

long long //更长的整型

float //单精度浮点数 —%f

double //双精度浮点数 —%lf

sizeof()获取数据在内存中所占用的存储空间,以字节为单位来计数,一个字节=8个比特位。
在这里插入图片描述

常量和变量

1.变量

局部变量

定义在代码块({ })内部的变量,只能在定义的局部当中使用,并不是所有局部变量都放在main函数当中,放在main函数当中的变量是局部变量。

全局变量

定义在代码块({ })之外的变量,在哪里都能使用

当局部变量和全局变量的名字相同的时候,局部变量优先

C语言语法规定,变量要定义在当前代码块的最前面,否则可能会报错。

变量的作用域和生命周期

限定这个名字的可用性的代码范围就是这个名字的作用域
局部变量的作用域:变量所在的局部范围。
全局变量的作用域:整个工程。
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
全局变量的生命周期是:整个程序的生命周期。

scanf是C语言提供的,scanf_s不是标准C语言提供的,是VS编译期提供的,不具有跨平台性。不建议因为使用VS编译期,把scanf替换成VS推荐的scanf_s

#define _CRT_SECURE_NO_WARNINGS 1 让警告失效

2.常量

C 语言中的常量分为以下以下几种:
① 字面常量
② const 修饰的常变量
③ #define 定义的标识符常量
④ 枚举常量

#include <stdio.h>
int main()
{
    //①字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
    //②const-常属性
    //const 修饰的常变量,使变量不能进行变值
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
 
    // const int n = 10;
    // int arr[n] = {0}; 出错!不可以这样使用
    // const 修饰的常变量在C语言中只是在语法层面限制了变量,n不能直接被改变,但是n本质上还是一个变量的,所以叫常变量
    
    //③#define的标识符常量演示
    #define MAX 100
    int arr[MAX] = {0};
    printf("max = %d\n", MAX);
    
    
    //④枚举常量演示  一一列举
    //枚举关键字-enum
    //举例:性别:男,女,保密
    
enum Sex  //Sex是枚举类型
{
 MALE,
 FEMALE,  //括号中的MALE,FEMALE,SECRET是枚举常量
 SECRET
};
 
    //enum Sex s = FEMALE;
    printf("%d\n", MALE);
    printf("%d\n", FEMALE);
    printf("%d\n", SECRET)//注:枚举常量的默认是从0开始,依次向下递增1的。默认MALE是0,FEMALE是1,SECRET是2
 //枚举常量不能更改,但是通过枚举类型创建出来的变量可以更改
    return 0; 
}

字符串,转义字符,注释,操作符

1.字符串

“hello bit.\n”
这种由双引号 引起来的一串字符称为字符串字面值 ,或者简称字符串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
    char arr1[] = "bit";
    char arr2[] = {'b', 'i', 't'};
    char arr3[] = {'b', 'i', 't',0};
    char arr4[] = {'b', 'i', 't','\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    printf("%s\n", arr4);
    return 0; 
}
//“abc”里包括'a' 'b' 'c' '\0'
//'\0'是字符串的结束标志,\0的ASCII值是0
#include<stdio.h>
#include<string.h>
 
int main(){
	char arr1[] = "abc";
	char arr2[] = {'a', 'b', 'c'};
	printf("%d\n",strlen(arr1));
	printf("%d\n",strlen(arr2));
 
	return 0;
} 

2.转义字符

转义字符 释义
? 在书写连续多个问号时使用,防止他们被解析成三字母词
用于表示字符常量’
" 用于表示一个字符串内部的双引号
\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1-3个八进制的数字。如:\130 X
\xdd dd表示2个十六进制数字。如:\x30 0

3.注释

C 语言风格的注释 /xxxxxx/ 缺陷:不能嵌套注释
C++ 风格的注释 //xxxxxxxx 可以注释一行也可以注释多行

4.操作符

在这里插入图片描述

只要是整数,内存中存储的都是二进制的补码

正数的原码,反码,补码都相同

负数存的是补码

原码:直接是按照正负写出的二进制序列

反码:原码的符号位不变,其他位按位取反得到的

补码:反码+1

相关推荐

  1. c语言基础知识

    2024-03-26 21:16:01       56 阅读
  2. C语言基础知识笔记

    2024-03-26 21:16:01       47 阅读
  3. 跨入嵌入式day1(Linux下C语言-基础知识)

    2024-03-26 21:16:01       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 21:16:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 21:16:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 21:16:01       82 阅读
  4. Python语言-面向对象

    2024-03-26 21:16:01       91 阅读

热门阅读

  1. 本地项目内网穿透可公网访问包(备用)

    2024-03-26 21:16:01       38 阅读
  2. 【晴问算法】入门篇—字符串处理—单词倒序II

    2024-03-26 21:16:01       43 阅读
  3. num_set.insert(num) 和 num_set.count(num)

    2024-03-26 21:16:01       36 阅读
  4. 数据库的子查询

    2024-03-26 21:16:01       39 阅读
  5. Linux:ssh多台设备快速访问

    2024-03-26 21:16:01       36 阅读
  6. 版本转产关注点

    2024-03-26 21:16:01       31 阅读
  7. Oracle的Merge和Using

    2024-03-26 21:16:01       39 阅读
  8. sharding-mybatis分库分表

    2024-03-26 21:16:01       41 阅读
  9. 嵌入式学习day39 数据结构

    2024-03-26 21:16:01       32 阅读
  10. 面试 JVM 八股文十问十答第三期

    2024-03-26 21:16:01       42 阅读
  11. Python小项目 - 人生重开模拟器

    2024-03-26 21:16:01       35 阅读
  12. 【力扣 - 除自身以外数组的乘积】

    2024-03-26 21:16:01       33 阅读