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; // 对比
相关文章
|
3月前
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
56 2
C++入门12——详解多态1
|
3月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
63 5
|
3月前
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
93 1
|
3月前
|
存储 安全 编译器
【C++打怪之路Lv1】-- 入门二级
【C++打怪之路Lv1】-- 入门二级
34 0
|
3月前
|
自然语言处理 编译器 C语言
【C++打怪之路Lv1】-- C++开篇(入门)
【C++打怪之路Lv1】-- C++开篇(入门)
39 0
|
3月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
3月前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2
|
3月前
|
编译器 Linux C语言
深入计算机语言之C++:C到C++的过度-1
深入计算机语言之C++:C到C++的过度-1
|
3月前
|
分布式计算 Java 编译器
【C++入门(下)】—— 我与C++的不解之缘(二)
【C++入门(下)】—— 我与C++的不解之缘(二)
|
3月前
|
编译器 Linux C语言
【C++入门(上)】—— 我与C++的不解之缘(一)
【C++入门(上)】—— 我与C++的不解之缘(一)