C/C++入门002-C语言组成

news2024/10/7 12:20:04

文章目录

  • 1. C工程创建
    • 1.1 基于Code::Blocks创建工程
    • 1.2 Code::Blocks界面设置
  • 2. C语言程序组成
    • 2.1函数
      • 2.1.1 主函数
      • 2.1.2 其它函数
      • 2.1.3 如何执行定义好的函数
    • 2.2 输出函数printf
      • 2.2.1 编译输出为exe可执行文件
    • 2.3 C语言要求
      • 2.3.1 注释
    • 2.4 C语言程序练习
      • 2.4.1 输出三角形
        • 代码1:
        • 代码2
      • 2.4.2 输出无bug
        • 代码:
    • 2.5 C语言中的关键字
      • 2.5.1 关键字
      • 2.5.2 关键字分类
    • 2.5 标识符

参考:https://blog.csdn.net/weixin_44617968/article/details/117656810

1. C工程创建

1.1 基于Code::Blocks创建工程

打开开发工具 Code::Blocks

  1. 创建新工程
    在这里插入图片描述

  2. 在弹出的窗口中,选择Console Application(控制台应用程序)
    在这里插入图片描述

  3. 创建一个C项目
    在这里插入图片描述

  4. 设置项目名称为所在位置:
    在这里插入图片描述

  5. 运行main.c
    选择编译并运行
    在这里插入图片描述

1.2 Code::Blocks界面设置

如果打开Code::Blocks,发现有些界面为空白,可以通过view进行显示需要显示的页面
View–Perspectives–Code::Blocks default
在这里插入图片描述

2. C语言程序组成

2.1函数

2.1.1 主函数

手机APP中的每一个功能如“打电话”,“发短信”等等,就相当于C语言程序中的一个程序段(函数),每个功能要顺序执行,如先开机,才能打电话,开机就是一起执行的基础。
C语言程序也一样,由众多功能组成,这个先执行的程序段称之为"主函数"。主函数有且只有一个,没有主函数,程序无法运行。主函数是系统运行是自动调用的,其它函数需要手动调用。主函数有固定书写的格式和范写

如果没有主函数,进行编译会报错

c:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\x86_64-w64-mingw32\8.1.0\..\..\..\..\x86_64-w64-mingw32\lib\..\lib\libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x2e)||undefined reference to `WinMain'|

出现这种情况表示C代码中不存在入口函数,即 main() 函数,请为你的C程序添加 main() 函数;

int main(int argc, char* argv[])
{
  return 0;
}

主函数定义的格式:

int 代表函数执行之后会返回一个整数类型的值
main 代表这个函数的名字叫做main
() 代表这是一个函数
{} 代表范围
return 1; 代表函数执行完之后返回整数1

2.1.2 其它函数

其它函数定义的格式 与主函数一致 只是函数名不一样

int oFunction() {
    printf("%d",1);
    return 1;
}

2.1.3 如何执行定义好的函数

int main()
{
  oFunction(); // 调用了函数
  return 0;
}

int oFunction() {
    printf("%d",1);
    return 1;
}

2.2 输出函数printf

使用printf函数输出要输出的内容

printf();

报错:

D:\cplusproject\cproject\main.c|8|error: too few arguments to function ‘printf’|
表示 函数’printf’|的参数太少

添加字符串参数后调用:

  printf("字符串1\n");
  printf("字符串2\n");

\n表示换行

如何引用printf函数,可以通过

#include <stdio.h> 

printf函数的参数格式:

%[flags][width][.precision][length]specifier,

即:%[标志][最小宽度][.精度][类型长度]说明符 [5] 。转换说明详解见下文。

附加参数 – 根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。

输出函数格式
在这里插入图片描述

2.2.1 编译输出为exe可执行文件

代码 demo1208.c

#include <stdio.h>
#include <windows.h>
int main()
{
    printf("字符串1\n");
    printf("字符串2\n");
    Sleep(10000);
    return 10;
}

如果通过
gcc demo1208.c -o demo1208

如果提示错误

demo1208.c:3:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main()

表示当前的main函数前没有添加int返回值类型,只需要把主函数

int main()
{

}

即可

2.3 C语言要求

2.3.1 注释

单行注释

// 被注释内容

多行注释

/* 被注释内容 */

注释的应用场景:

思路分析
说明变量
函数说明

C语言中,每条完整的语句均使用 ; 结尾
C语言中,中文只能出现在注释或字符串中
一个C语言程序有且只有一个main函数,main函数前面的int可以不写或者换成void,其中return 0可以不写
代码记得加注释 //

2.4 C语言程序练习

2.4.1 输出三角形

  *
 ***
*****

代码1:

void main()
{
    printf("  *  \n");
    printf(" *** \n");
    printf("*****\n");
}

代码2

printf("  *  \n *** \n*****\n");

2.4.2 输出无bug

代码:

#include <stdio.h>
#include <windows.h>

void main()
{

char log[] = "\
                         _oo0oo_\r\n\
                        o8888888o\r\n\
                        88\" . \"88\r\n\
                        (| -_- |)\r\n\
                        0\\  =  /0\r\n\
                      ___/`---'\\___\r\n\
                    .' \\\\|     |// '.\r\n\
                   / \\\\|||  :  |||// \r\n\
                  / _||||| -:- |||||- \r\n\
                 |   | \\\\\\  - /// |   |\r\n\
                 | \\_|  ''\\---/''  |_/ |\r\n\
                 \\  .-\\__  '-'  ___/-. /\r\n\
               ___'. .'  /--.--\\  `. .'___\r\n\
            .\"\" '<  `.___\\_<|>_/___.' >' \"\".\r\n\
           | | :  `- \\`.;`\\ _ /`;.`/ - ` : | |\r\n\
           \\  \\ `_.   \\_ __\\ /__ _/   .-` /  /\r\n\
       =====`-.____`.___ \\_____/___.-`___.-'=====\r\n\
                         `=---='\r\n\
\r\n\
       ~~~~~~~~~~~~~~~~~~~~无bug~~~~~~~~~~~~~~~~~~~\r\n\
\r\n ";

printf("%s",log);
}

注意下C语言中的类型特点

2.5 C语言中的关键字

2.5.1 关键字

关键字就是保留字:

一共32个。
全部都是小写
在开发工具中会显示特殊颜色,比如Code::Blocks中为蓝色
关键字不能用作变量名、函数名等

在这里插入图片描述

2.5.2 关键字分类

在这里插入图片描述

2.5 标识符

标识符是用来给变量,函数起名字的,和人类的名字差不多,为了方便识别变量和函数,标识符要有一定的规范,避免出现大家都叫曹的情况发生。

标识符命名规则–编译器可以通过

只能由字母(a~z、 A~Z)、数字、下划线组成 a_6
不能包含除下划线以外的其它特殊字符串 a+6
不能以数字开头 6a
不能是C语言中的关键字 do
标识符严格区分大小写

标识符命名规范–名字起的好

见名知意: a 不合适 studentName比较合适
驼峰命名: 驼峰命名法 是指 构成标识符时,第一个单词以小写字母开始;第二个单词的首字母大写.
例如:userName、userLoginName这样的变量名称看上去就像驼峰一样此起彼伏
在这里插入图片描述

问题如果一个变量用来接收学生的年龄,定义这个变量吧:

int studentAge;
int a; // 对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL基础】数据库定义语言DDL相关操作有那些?

目录 一、什么是DDL? 二、对数据库的常用操作 三、对表结构的常见操作 四、修改表结构格式 &#x1f49f; 创作不易&#xff0c;不妨点赞&#x1f49a;评论❤️收藏&#x1f499;一下 一、什么是DDL? DDL(Data Definition Language) 被称为数据库定义语言&#xff0c;该…

如何基于企业微信通讯录,同步生成对外的LDAP服务?

不少企业使用企业微信作为办公协同的工具&#xff0c;并通过企业微信的组织架构&#xff08;即通讯录&#xff09;来管理员工身份。那么如何利用当前企业微信的组织架构和用户身份&#xff0c;同步生成对外的 LDAP 服务呢&#xff1f; 为什么要同步创建 LDAP 服务&#xff1f; …

【超级详细步骤】pyinstaller 打包 exe 其实特别简单

文章目录为什么要打包&#xff1f;安装pyinstaller技术提升pyinstaller 打包单个.py文件步骤1&#xff1a;单击以下区域输入 cmd 切换到目标文件目录2&#xff1a;输入 pyinstaller -F -w Analog_clock.py 回车即可3&#xff1a;打包成功会在.py文件同级目录下出现以下文件&…

VM——http协议及json解析

1、http协议实现参考&#xff1a;(180条消息) C# Http通讯协议的整理_C#Code- Sheep的博客-CSDN博客_c# http协议 2、Json解析参考&#xff1a;c#解析json字符串处理&#xff08;最清晰易懂的方法&#xff09; - 轩辕箭 - 博客园 (cnblogs.com) 3、VM中http实现步骤&#xff…

WordPress 主题模板QUX9.1.4开心版无授权限制 DUX二开增强主题

源码测评&#xff1a;WordPress主题QUX9.1.4开心版&#xff0c;我安装测试了下&#xff0c;看来没什么问题&#xff0c;想学习参考的网友可以试下。 更新日志&#xff1a; 2020/3/19更新 V9.1.4 推荐&#xff1a;★★★★★ 新增 新增夜间模式&#xff08;主题设置 – 客服 –…

基于Python+Django+Vue+MYSQL的社团管理系统

项目介绍 随着近年来大学教育的改革&#xff0c;大部分高校普遍开始实行学分制、弹性学制改革&#xff0c;这样学校在学生的学习和生活中所起的作用慢慢减小&#xff0c;不再是一种直接由学校决定学生的大学生活。学生对自己的学习和生活有了更大的自主权&#xff0c;在课余也…

虹科分享 | 盘点世界杯有趣小知识!带你感受体育赛事可视化的快乐!

卡塔尔世界杯 2022年卡塔尔世界杯是第二十二届世界杯足球赛&#xff0c;是历史上首次在卡塔尔和中东国家境内举行、也是第二次在亚洲举行的世界杯足球赛。 今年卡塔尔世界杯可谓精彩纷呈&#xff0c;花2000个亿在沙漠里打造出的空调球场、洗脑又魔性的“母鸡生蛋”主题曲《Tu…

【Linux】进程创建、退出和等待(fork、exit和_exit、waitpid和wait、阻塞和非阻塞)

文章目录1、进程创建1.1 理解fork函数1.2 fork函数的细节2、进程退出2.1 退出码2.2 exit函数和_exit系统调用3、进程等待3.1 wait和waitpid3.2 阻塞和非阻塞1、进程创建 进程的创建主要依靠系统接口fork函数。 fork函数从已存在的一个进程中&#xff0c;创建一个子进程&#…

刚接触测试如何编写测试用例?看看摸鱼5年的老点工是怎么写的

给你个需求&#xff0c;你要怎么转变成最终的用例&#xff1f; 直接把需求文档翻译一下就完事了。 老点工拿到需求后的标准操作&#xff1a; 第一步&#xff1a;解析需求 先解析需求-找出所有需求中的动词&#xff0c;再列出所有测试点。测试点过程不断发散&#xff0c;对于…

第十四章: ReentrantLock、ReentrantReadWriteLock、StampedLock

相关面试题锁的演变ReentrantReadWriteLock锁降级案例演示一案例演示二总结为什么要有锁降级邮戳锁 StampedLock邮戳锁的特点案例演示一案例演示二StampedLock 缺点相关面试题 你说你用过读写锁&#xff0c;锁饥饿问题是什么&#xff1f;有没有比读写锁更快的锁&#xff1f;St…

域名解析函数 gethostbyname

在实现TCP/UDP编程的时候&#xff0c;服务端绑定的IP地址是点分十进制的&#xff0c;如124.222.215.205&#xff0c;如果提供的是域名&#xff0c;此时我们需要将域名转换成点分十进制的IP地址&#xff0c;这个过程就是 “ 域名解析 ”&#xff0c;实现域名转换的函数就是 geth…

Python Aws Ubuntu20 配置多IP

1. 业务场景&#xff1a; 高频次交易需要多次访问接口&#xff0c;配置单服务器多IP绕过币安单个IP频率限制 2. AWS实例选择&#xff1a; t3系列&#xff0c;东京A区&#xff0c;ubuntu20 这是我测试的币安延迟最低的配置&#xff08;平均6ms&#xff09; 换一个区域、一个系…

【王道计算机网络笔记】数据链路层-数据链路层设备

文章目录物理层扩展以太网链路层扩展以太网网桥透明网桥源路由网桥以太网交换机直通式交换机存储转发式交换机冲突域和广播域物理层扩展以太网 主机和集线器不能超过100m&#xff0c;超过100m会失真严重&#xff0c;无法恢复&#xff0c;扩展以太网的方法&#xff1a; 通过光纤…

欢迎报名Rust China Hackathon 2022 达坦科技组

12月4日下午&#xff0c;DatenLord就2022Rust China Hackathon大赛活动企业组&#xff08;达坦科技组&#xff09;的赛题进行了空中宣讲会。不仅对赛事流程进行了全面的讲解&#xff0c;同时对赛题背景以及完赛标准和要点进行了深入的剖析。会后更是设置问答环节&#xff0c;细…

目标检测算法——图像分割数据集汇总(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f384;&#x1f384;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批图像分割数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&am…

给visCode编辑器添加背景图

看见很多大牛的visCode编辑器上有个背景图&#xff0c;感觉挺有逼格的&#xff0c;要想跟大牛一样有逼格&#xff0c;那先把编辑器设置的跟大牛的逼格一样高 话不多说&#xff0c;开始 第一步&#xff1a;先安装背景扩展 第二步&#xff1a;点击选择扩展设置 第三步&#xff1…

原码、反码、补码的互相转换

原码、反码、补码的互相转换 简介&#xff1a;本文是为了计算机组成原理复习&#xff0c;本文以具体题目的方式来对原码、反码、补码的互相转换进行讲解。 概述 原码 &#xff1a;最高位是符号位&#xff0c;0代表正数&#xff0c;1代表负数&#xff0c;非符号位为该数字绝对…

实战web漏洞挖掘小技巧

几个月前看到国外的bug bounty tips在传Host攻击技巧&#xff0c;前阵子又看到国内有不少文章总结&#xff0c;冷渗透就不再复述了&#xff0c;直接介绍实际业务场景中碰到的案例。 0x01 自定义Host—窃取Token 1. 找到重置密码处&#xff0c;填写任意一个受害者邮箱帐号&#…

记录--微信小程序获取用户信息(附代码、流程图)

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 本篇文章主要总结了微信小程序开发&#xff0c;获取用户信息的整个流程步骤。补充了网上很多碎片化的代码&#xff0c;本人梳理了思路写下了这篇文章。 思路 1、在js文件中&#xff0c;设置userinfo、…

华丰科技将于12月13日上会:业绩波动明显,海通证券等为股东

近日&#xff0c;四川华丰科技股份有限公司&#xff08;下称“华丰科技”&#xff09;在上海证券交易所科创板递交招股书&#xff08;上会稿&#xff09;。据贝多财经了解&#xff0c;华丰科技将于2022年12月13日上会&#xff0c;接受科创板上市委的现场审议。 根据公开信息&am…