初识C语言(一)

简介: 初识C语言(一)

1.什么是C语言

C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。

C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。

当前最新的 C 语言标准为 C18 ,在它之前的 C 语言标准有 C17、C11...C99 等。

2.第一个C语言程序

#include<stdio.h>
int main()
{
  printf("Hello 奔跑在路上的小蜗牛");
  return 0;
}

3.数据类型

char             //字符数据类型

short           //短整型

int               //整型

long            //长整型

long long     //更长的整型

float            //  单精度浮点数

double       // 双精度浮点数

单位基础知识

1B (byte,字节) = 8 bit (比特,又称"位", 计算机中每个0或1就是一个位(bit)) ;

1KiB(Kibibyte,千字节)=1024B= 2^10 B;

1MiB (Mebibyte,兆字节,百万字节,简称"兆") =1024KB= 2^20 B ;

1GiB (Gibibyte,吉字节,十亿字节,又称"千兆") =1024MB= 2^30 B ;

1TiB (Tebibyte,万亿字节,太字节) =1024GB= 2^40 B ;

1PiB (Pebibyte,千万亿字节,拍字节) =1024TB= 2^50 B ;

1EiB (Exbibyte,百亿亿字节,艾字节) =1024PB= 2^60 B ;

1ZiB (Zebibyte,十万亿亿字节,泽字节) = 1024EB= 2^70 B ;

1YiB (Yobibyte,一亿亿亿字节,尧字节) = 1024ZB= 2^80 B ;

4.变量、常量

在程序运行过程中,其值不能被改变的量称为常量。

变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。

变量必须先定义后使用。在定义时指定该变量的名字和类型。

变量的命名

  1. 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
  2. 不能以数字开头。
  3. 长度不能超过63个字符。
  4. 变量名中区分大小写的。
  5. 变量名不能使用关键字

变量的分类

定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。

#include <stdio.h>
int global = 2019;//全局变量
int main()
{
    int local = 2018;//局部变量
    int global = 2020;//局部变量
    printf("global = %d\n", global);
    return 0;
}

总结; 当局部变量和全局变量同名的时候,局部变量优先使用。

变量的使用

#include<stdio.h>
int main()
{
  int a = 0;
  scanf("%d",&a);//%d表示的是输出的格式(在下面小提一下有个概念)
//  scanf(“格式控制字符串”, 地址表列);&a表示变量的地址,表示数据存在哪里
 
  printf("%d", a);
}
 
 
//scanf的作用:输入数据,数据从键盘读取到内存中
//printf的作用:输出数据,数据从内存打印(输出)到屏幕上

常见格式符

%c      //字符型格式符

%d      //整型输出

%ld     //长整型输出

%x      //以十六进制数形式输出整数,或输出字符串的地址

%o      //以八进制数形式输出整数

%u      //以十进制数输出unsigned型数据(无符号数)

%s       //用来输出一个字符串

%f       //用来输出实数,以小数形式输出,默认情况下保留小数点6位

%lf      //double型

%p     //地址打印

变量的作用域和生命周期

作用域( scope )是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效 / 可用

的而限定这个名字的可用性的代码范围就是这个名字的作用域。

1. 局部变量的作用域是变量所在的局部范围。

2. 全局变量的作用域是整个工程。

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

变量创建的本质:

在内存中开辟一块空间,存放数据

销毁:

表示的是把空间换个操作系统

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

2. 全局变量的生命周期是:整个程序的生命周期。

常量

  1. 字面常量
  2. const 修饰的常变量
  3. #define 定义的标识符常量
  4. 枚举常量(一 一列举)
#include <stdio.h>
//举例
enum Sex
{
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
    
    //#define的标识符常量 演示
 #define MAX 100
    printf("max = %d\n", MAX);
    
    //枚举常量演示
    printf("%d\n", MALE);
        printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
    //注:枚举常量的默认是从0开始,依次向下递增1的
    return 0;
}

pai 被称为 const 修饰的常变量

变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。

还有要注意的是(千万不要搞混了哦)

'a'--------------------这种是叫字符('')

"a"--------------------这种是叫字符串("")

❤️结语:

本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!


相关文章
|
7月前
|
存储 人工智能 JavaScript
OpenClaw/Clawdbot指南:阿里云上及本地部署+国内适配工具skills,告别水土不服
2026年,OpenClaw(原Clawdbot,曾用名Moltbot)凭借本地私有化运行、高度可扩展的核心优势,成为AI智能体领域的热门工具。但不少国内用户在使用时遭遇“水土不服”——官方仅支持Discord、Telegram等海外通讯工具,原生技能库覆盖不足,自建部署维护成本高等问题。
2205 2
|
2月前
|
人工智能 语音技术 计算机视觉
租用GPU算力怎么选择显卡?从LLM到AIGC的全场景选型与避坑指南
本文直击AI时代“算力焦虑”,从LLM、AIGC、语音处理、计算机视觉、科研仿真五大场景出发,以任务瓶颈(显存+算力+预算)为锚点,提供务实GPU选型指南:3090是性价比之王,A100/A800适合大模型训练,魔改卡慎购但云租可取,3060足以胜任语音任务。倡导“租卡优于买卡”,让开发者专注创新而非硬件运维。
|
2月前
|
人工智能 安全 程序员
OpenClaw本地部署TopClaw,小龙虾AI零基础一键安装指南
TopClaw是OpenClaw官方内核的中文汉化版,专为小白设计:一键安装、零代码、免配置,支持Win/Mac全平台。内置模型下载器、本地离线运行、数据不出设备,隐私安全有保障。三分钟即可部署满血AI助手,写稿、翻译、编程轻松搞定。
313 7
|
8月前
|
安全 网络安全 开发工具
解决 Host key verification failed 报错的三种方法(含 SSH 安全建议)
本文由喵喵侠撰写,详解Git提交时常见报错“Host key verification failed”的成因与解决方案。当SSH密钥变更或服务器重装系统时,本地记录的主机密钥会失效,导致连接被拒。文章提供三种解决方法:使用`ssh-keygen -R`删除旧密钥、手动编辑`known_hosts`文件,或临时禁用严格检查(不推荐生产环境)。同时强调安全建议:确认服务器状态、核对密钥指纹、启用`VerifyHostKeyDNS`防范中间人攻击。帮助开发者快速定位问题,保障代码提交顺畅。
2950 0
|
人工智能 自然语言处理 算法
谷歌DeepMind研究再登Nature封面,隐形水印让AI无所遁形
近日,谷歌DeepMind团队在《自然》期刊上发表了一项名为SynthID-Text的研究成果。该方法通过引入隐形水印,为大型语言模型(LLM)生成的文本添加统计签名,从而实现AI生成文本的准确识别和追踪。SynthID-Text采用独特的Tournament采样算法,在保持文本质量的同时嵌入水印,显著提高了水印检测率。实验结果显示,该方法在多个LLM中表现出色,具有广泛的应用潜力。论文地址:https://www.nature.com/articles/s41586-024-08025-4。
731 26
|
人工智能 Java API
教你自创工作流,赋予AI助理个性化推荐超能力
本文详细介绍了使用Spring AI Alibaba构建AI助理的全过程,涵盖从基本流程设计到实际操作实现的各个方面。文章首先回顾了前期工作,包括旅游攻略、天气查询和个人待办事项等功能模块的设计与实现。接着,深入探讨了工作流的实现细节,如事件封装优化、工作流节点创建及复杂工作流的高效管理。最后,通过实际项目启动与运行测试,展示了AI助理的实际效果,验证了系统的稳定性和可扩展性。本文不仅适合Java开发者学习AI技术,也为后续的优化和功能拓展提供了宝贵的经验。
2412 9
教你自创工作流,赋予AI助理个性化推荐超能力
|
人工智能 数据中心 芯片
液冷是大模型对算力需求的必然选择?|英伟达 GTC 2024六大亮点
在这个以高性能计算和大模型推动未来通用人工智能时代,算力已成为科技发展的隐形支柱。本文将重点探讨算力的演进,深入分析在不同领域中算力如何成为推动进步的基石;着眼于液冷如何突破算力瓶颈成为引领未来的先锋,对液冷散热的三种方式(冷板式、浸没式和喷淋式)做了详细的对比分析、成本测算和市场空间预测。并为您提供一份“实用教程”,指导如何将普通服务器改装为液冷服务器,以应对越来越复杂的计算需求。
1302 3
|
机器学习/深度学习 传感器 人工智能
智慧无人机AI算法方案
智慧无人机AI算法方案通过集成先进的AI技术和多传感器融合,实现了无人机的自主飞行、智能避障、高效数据处理及多机协同作业,显著提升了无人机在复杂环境下的作业能力和安全性。该方案广泛应用于航拍测绘、巡检监测、应急救援和物流配送等领域,能够有效降低人工成本,提高任务执行效率和数据处理速度。
3592 2
智慧无人机AI算法方案
|
机器学习/深度学习 人工智能 自然语言处理
从人工智能到大模型的演变
本文概述了人工智能从早期的规则基础系统到现代大模型的演变过程,涵盖了符号主义、专家系统、统计学习、深度学习、自然语言处理以及大模型的出现与应用,分析了各阶段的关键技术和面临的挑战,展望了未来的发展方向。
1182 3