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

简介: C/C++入门002-C语言组成

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


1. C工程创建


1.1 基于Code::Blocks创建工程

打开开发工具 Code::Blocks


1.创建新工程

94db3aef5218c49a334e7ec51edccd42_550d4e6100594332b5d46032690a2272.png


2.在弹出的窗口中,选择Console Application(控制台应用程序)

f86fcf7f2a4b00a392bf4caeb9f3615a_f715e0bd9dd149c6bfa122c4deb1cc18.png


3.创建一个C项目

6905737f2f0002c2441ed0219f076869_0862d1be72ef4564a75827362562e975.png


4.设置项目名称为所在位置:

e013c154e289640675118ab307bc75e3_dd0e86cbc0914b5e8b215b617248c0db.png


5.运行main.c

选择编译并运行

b0a94027b17c42a46a2674a2a82c89f4_b8da264f005c499e8623f893d5dc776d.png


1.2 Code::Blocks界面设置

如果打开Code::Blocks,发现有些界面为空白,可以通过view进行显示需要显示的页面

View–Perspectives–Code::Blocks default

1047348623900df648e0aa8dd3ee987b_d1cd8c717a8f4620aa11473437acc9b6.png


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 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。


输出函数格式

17a44c8f00d880320390eb08646efcf4_c3407961f07c4e77aad15a2a78963dd9.png


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中为蓝色

关键字不能用作变量名、函数名等


114c7385069fc2cef3d2662354120de3_ecd37f5c31164aff985fb428bda43c59.png


2.5.2 关键字分类

b4060e2b5f0766e5602f0094dd70745a_723a202e6cde4caea7687ab16c85dac5.png


2.5 标识符

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


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


只能由字母(a~z、 A~Z)、数字、下划线组成 a_6

不能包含除下划线以外的其它特殊字符串 a+6

不能以数字开头 6a

不能是C语言中的关键字 do

标识符严格区分大小写


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


见名知意: a 不合适 studentName比较合适

驼峰命名: 驼峰命名法 是指 构成标识符时,第一个单词以小写字母开始;第二个单词的首字母大写.

例如:userName、userLoginName这样的变量名称看上去就像驼峰一样此起彼伏

ff501bb006aa161db2a5724e1ab8ce7a_ec81b0f3ef0443d3b15b20c9b9abab8e.png


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

int studentAge;
int a; // 对比
相关文章
|
存储 负载均衡 算法
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
425 15
|
11月前
|
存储 C++
C++语言中指针变量int和取值操作ptr详细说明。
总结起来,在 C++ 中正确理解和运用 int 类型地址及其相关取值、设定等操纵至关重要且基础性强:定义 int 类型 pointer 需加星号;初始化 pointer 需配合 & 取址;读写 pointer 执向之处需配合 * 解引用操纵进行。
781 12
|
存储 算法 安全
企业员工数据泄露防范策略:基于 C++ 语言的布隆过滤器算法剖析[如何防止员工泄密]
企业运营过程中,防范员工泄密是信息安全领域的核心议题。员工泄密可能致使企业核心数据、商业机密等关键资产的流失,进而给企业造成严重损失。为应对这一挑战,借助恰当的数据结构与算法成为强化信息防护的有效路径。本文专注于 C++ 语言中的布隆过滤器算法,深入探究其在防范员工泄密场景中的应用。
330 8
|
存储 安全 编译器
c++入门
c++作为面向对象的语言与c的简单区别:c语言作为面向过程的语言还是跟c++有很大的区别的,比如说一个简单的五子棋的实现对于c语言面向过程的设计思路是首先分析解决这个问题的步骤:(1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤(2) (9)输出最后结果。但对于c++就不一样了,在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象:(1)黑白双方,这两方的行为是一样的。(2)棋盘系统,负责绘制画面。
195 0
|
存储 缓存 C++
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
C++ 标准模板库(STL)提供了一组功能强大的容器类,用于存储和操作数据集合。不同的容器具有独特的特性和应用场景,因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C++ 的开发者来说,了解这些容器的基础知识以及它们的特点是迈向高效编程的重要一步。本文将详细介绍 C++ 常用的容器,包括序列容器(`std::vector`、`std::array`、`std::list`、`std::deque`)、关联容器(`std::set`、`std::map`)和无序容器(`std::unordered_set`、`std::unordered_map`),全面解析它们的特点、用法
1030 1
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
|
存储 分布式计算 编译器
C++入门基础2
本内容主要讲解C++中的引用、inline函数和nullptr。引用是变量的别名,与原变量共享内存,定义时需初始化且不可更改指向对象,适用于传参和返回值以提高效率;const引用可增强代码灵活性。Inline函数通过展开提高效率,但是否展开由编译器决定,不建议分离声明与定义。Nullptr用于指针赋空,取代C语言中的NULL。最后鼓励持续学习,精进技能,提升竞争力。
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
529 5
|
存储 安全 编译器
【C++打怪之路Lv1】-- 入门二级
【C++打怪之路Lv1】-- 入门二级
206 0
|
自然语言处理 编译器 C语言
【C++打怪之路Lv1】-- C++开篇(入门)
【C++打怪之路Lv1】-- C++开篇(入门)
283 0