IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 必看的C语言教程之变量那点事 -> 正文阅读

[C++知识库]必看的C语言教程之变量那点事

🍊博客主页:Geekwyz的江湖背景
🎉欢迎关注🔎点赞👍收藏??留言📝
🌟本文由 Geekwyz原创
🙏作者水平很有限,如果发现错误,欢迎留言



1.自定义数据类型

C语言提供了一个叫typedef的功能来声明一个已有的数据类型的新名字比如:typedef int length,此时length就代替int的数据类型。

#include<stdio.h>

int main(){
    typedef int len;
    len a = 1;
    printf("%d",a);
    return 0;
}
  • 自定义结构体变量
#include<stdio.h>

typedef struct data{
    int a;
    int b;
}p;

int main(){
    //p就相当与struct data
    p p1 = {1,2};

    printf("%d\n",p1.a);
    printf("%d",p1.b);
    return 0;
}

2.我们联合

联合和结构体很像,但是数据存储的方式是不相同的,结构体的数据是分开存储的,而联合储存的数据确实存储在一起的,也就是说会发生数据的覆盖

#include<stdio.h>

union data{
    int a;
    int b;
}p;
int main(){
    p.a = 1;
    p.b = 2;
    printf("%d\n",p.a);//输出2
    printf("%x\n",&p.a);//输出地址601044
    printf("%x\n",&p.b);//输出地址601044
    
    return 0;
}

3.全局变量

定义在函数值外的变量,我们称之为全局变量,定义在函数内部的变量,我们称之为本地变量

  • 如果全局变量没有初始化会得到0值
  • 指针会的到NULL值
  • 如果函数内部局部变量与全局变量相同,全局变量会被隐藏
#include<stdio.h>

int a = 12;

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

void func(void){
    printf("%d",a + 1);
}
//全局变量的隐藏
#include<stdio.h>

int a = 2;

int main(){
    int a = 1;
    printf("%d",a);//输出1
    return 0;
}

4.静静的变量

在本地变量定义时加上static修饰符就称之为静态本地变量

  • 当函数离开时静态本地变量会继续存在并保持其值,全局的生存期,本地的作用域
#include<stdio.h>

int main(){
    func();
    func();
    return 0;
}

void func (void){
    static int a = 1;
    int b = 1;
    a += 1;
    b += 1;
    printf("a = %d\n",a);//生存期很长
    printf("b = %d\n",b);//生存期很短
}

5.返回本地变量的地址

#include<stdio.h>

int* g(void);


int main(){
    int* p = g();
    printf("%d\n",*p);
    printf("%d\n",*p); 
    return 0;
}

int*  g(void){
    int i = 12;
    return &i;
}

我们发现两次输出的结果不一样,这是因为本地变量的生存期结束,我们也不知道,那地方到底存什么,使用全局变量和静态变量的函数的线程是不安全的

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:30:33  更:2022-02-09 20:30:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:21:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码