欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

程序员入门应该从哪里开始,蝶泳如何入门从哪开始

终极管理员 知识笔记 99阅读
1.第一个C程序 1.1 创建项目

第一次使用Visual Studio时 

 

1.2 创建文件   1.3 编写代码 

编写第一个代码

#include<iostream>using namespace std;int main(){cout << hello word! << endl;system(pause);return 0;


1.2 注释

作用在代码中加一些说明和解释方便自己或其他程序员程序员阅读代码

两种格式

单行注释// 描述信息

通常放在一行代码的上方或者一条语句的末尾对该行代码说明

多行注释 /* 描述信息 */

通常放在一段代码的上方对该段代码做整体说明

提示编译器在编译代码时会忽略注释的内容

 2.基本要素 2.1 变量

作用给一段指定的内存空间起名方便操作这段内存

语法数据类型 变量名 初始值;

示例

#include<iostream>using namespace std;​int main() {​    //变量的定义    //语法数据类型  变量名  初始值​    int a  10;    int b  5, c  b2;​    cout << a   << a << endl;        system(pause);​    return 0;}

注意C在创建变量时必须给变量一个初始值否则会报错

2.2 常量

作用用于记录程序中不可更改的数据

C定义常量两种方式

#define 宏常量 #define 常量名 常量值

通常在文件上方定义表示一个常量

const修饰的变量 const 数据类型 常量名 常量值

通常在变量定义前加关键字const修饰该变量为常量不可修改

示例

//1、宏常量#define day 7int main() {cout << 一周里总共有  << day <<  天 << endl;//day  8;  //报错宏常量不可以修改//2、const修饰变量const int month  12;cout << 一年里总共有  << month <<  个月份 << endl;//month  24; //报错常量是不可以修改的system(pause);return 0;}
2.3 关键字

作用关键字是C中预先保留的单词标识符

在定义变量或者常量时候不要用关键字

C关键字如下

asmdoifreturntypedefautodoubleinlineshorttypeidbooldynamic_castintsignedtypenamebreakelselongsizeofunioncaseenummutablestaticunsignedcatchexplicitnamespacestatic_castusingcharexportnewstructvirtualclassexternoperatorswitchvoidconstfalseprivatetemplatevolatileconst_castfloatprotectedthiswchar_tcontinueforpublicthrowwhiledefaultfriendregistertruedeletegotoreinterpret_casttry

提示在给变量或者常量起名称时候不要用C得关键字否则会产生歧义。

2.4 标识符命名规则

作用C规定给标识符变量、常量命名时有一套自己的规则

标识符不能是关键字

标识符只能由字母、数字、下划线组成

第一个字符必须为字母或下划线

标识符中字母区分大小写

建议给标识符命名时争取做到见名知意的效果方便自己和他人的阅读

 3.数据类型

C规定在创建一个变量或者常量时必须要指定出相应的数据类型否则无法给变量分配内存

3.1 整型

作用整型变量表示的是整数类型的数据

C中能够表示整型的类型有以下几种方式区别在于所占内存空间不同

数据类型占用空间取值范围short(短整型)2字节(-2^15 ~ 2^15-1)int(整型)4字节(-2^31 ~ 2^31-1)long(长整形)Windows为4字节Linux为4字节(32位)8字节(64位)(-2^31 ~ 2^31-1)long long(长长整形)8字节(-2^63 ~ 2^63-1) 3.2 sizeof关键字

作用利用sizeof关键字可以统计数据类型所占内存大小

语法 sizeof( 数据类型 / 变量)

示例

int main() {​    cout << short 类型所占内存空间为  << sizeof(short) << endl;​    cout << int 类型所占内存空间为  << sizeof(int) << endl;​    cout << long 类型所占内存空间为  << sizeof(long) << endl;​    cout << long long 类型所占内存空间为  << sizeof(long long) << endl;​    system(pause);​    return 0;}

整型结论short < int < long < long long

3.3 实型浮点型

作用用于表示小数

浮点型变量分为两种

单精度float

双精度double

两者的区别在于表示的有效数字范围不同。

数据类型占用空间有效数字范围float4字节7位有效数字double8字节1516位有效数字

示例

int main() {​    float f1  3.14f;    double d1  3.14;​    cout << f1 << endl;    cout << d1<< endl;​    cout << float  sizeof   << sizeof(f1) << endl;    cout << double sizeof   << sizeof(d1) << endl;​    //科学计数法    float f2  3e2; // 3 * 10 ^ 2     cout << f2   << f2 << endl;​    float f3  3e-2;  // 3 * 0.1 ^ 2    cout << f3   << f3 << endl;​    system(pause);​    return 0;}
3.4 字符型

作用字符型变量用于显示单个字符

语法char ch a;

注意1在显示字符型变量时用单引号将字符括起来不要用双引号

注意2单引号内只能有一个字符不可以是字符串

C和C中字符型变量只占用1个字节。

字符型变量并不是把字符本身放到内存中存储而是将对应的ASCII编码放入到存储单元

示例

int main() {        char ch  a;    cout << ch << endl;    cout << sizeof(char) << endl;​    //ch  abcde; //错误不可以用双引号    //ch  abcde; //错误单引号内只能引用一个字符​    cout << (int)ch << endl;  //查看字符a对应的ASCII码    ch  97; //可以直接用ASCII给字符型变量赋值    cout << ch << endl;​    system(pause);​    return 0;}

ASCII码表格

ASCII控制字符ASCII字符ASCII字符ASCII字符0NUT32(space)6496、1SOH33!65A97a2STX3466B98b3ETX35#67C99c4EOT36$68D100d5ENQ37iE101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT4375K107k12FF44,76L108l13CR45-77M109m14SO46.78N110n15SI47/79O111o16DLE48080P112p17DCI49181Q113q18DC250282R114r19DC351383S115s20DC452484T116t21NAK53585U117u22SYN54686V118v23TB55787W119w24CAN56888X120x25EM57989Y121y26SUB58:90Z122z27ESC59;91[123{28FS60<92/124|29GS6193]125}30RS62>94^12631US63?95_127DEL

ASCII 码大致由以下两部分组

ASCII 非打印控制字符 ASCII 表上的数字 0-31 分配给了控制字符用于控制像打印机等一些外围设备。

ASCII 打印字符数字 32-126 分配给了能在键盘上找到的字符当查看或打印文档时就会出现。

3.5 转义字符

作用用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有\n \\ \t

转义字符含义ASCII码值十进制\a警报007\b退格(BS) 将当前位置移到前一列008\f换页(FF)将当前位置移到下页开头012\n换行(LF) 将当前位置移到下一行开头010\r回车(CR) 将当前位置移到本行开头013\t水平制表(HT) 跳到下一个TAB位置009\v垂直制表(VT)011\\代表一个反斜线字符092代表一个单引号撇号字符039代表一个双引号字符034\?代表一个问号063\0数字0000\ddd8进制转义字符d范围0~73位8进制\xhh16进制转义字符h范围09afA~F3位16进制

示例

int main() {            cout << \\ << endl;    cout << \tHello << endl;    cout << \n << endl;​    system(pause);​    return 0;}
3.6 字符串型

作用用于表示一串字符

两种风格

C风格字符串 char 变量名[] 字符串值

示例

int main() {​    char str1[]  hello world;    cout << str1 << endl;        system(pause);​    return 0;}

注意C风格的字符串要用双引号括起来

C风格字符串 string 变量名 字符串值

示例

int main() {​    string str  hello world;    cout << str << endl;        system(pause);​    return 0;}

注意C风格字符串需要加入头文件#include<string>

3.7 布尔类型 bool

作用布尔数据类型代表真或假的值

bool类型只有两个值

true --- 真本质是1

false --- 假本质是0

bool类型占1个字节大小

示例

int main() {​    bool flag  true;    cout << flag << endl; // 1​    flag  false;    cout << flag << endl; // 0​    cout << size of bool   << sizeof(bool) << endl; //1        system(pause);​    return 0;}

4.数据的输入与输出 4.1 格式输入函数scanf

scanf 函数是一个用于输入的标准 C 函数可以在 C 中使用但在 C 中通常不推荐使用它因为它不提供类型安全性和异常处理容易引发潜在的安全问题。C 提供了更安全、更灵活的输入方法通常使用 cin 对象来完成。 

以下是一个使用 scanf 函数的示例

#include <cstdio>int main() {    int num;    printf(输入一个整数: );    scanf(%d, &num);    printf(你输入的整数是: %d\n, num);    double value;    printf(输入一个浮点数: );    scanf(%lf, &value);    printf(你输入的浮点数是: %.2f\n, value);    return 0;}

 在这个示例中scanf 函数使用格式控制符如 %d%lf) 来指定输入的数据类型并使用 & 符号来获取变量的地址。与 printf 类似scanf 也需要手动处理输入的格式这可能会导致输入错误或溢出。

4.2 格式输出函数printf

printf 函数通常是与 C 语言相关的而不是 C。虽然在 C 中也可以使用 printf但推荐使用 C 的 iostream 库中的 cout 来进行输出因为它更符合 C 的面向对象编程风格。如果你非常需要使用 printf你需要包含 <cstdio> 头文件。 

#include <cstdio>int main() {    int num  42;    printf(整数: %d\n, num);    double value  3.14159;    printf(浮点数: %.2f\n, value);    const char* text  Hello, World!;    printf(字符串: %s\n, text);    char character  A;    printf(字符: %c\n, character);    return 0;}

printf 中格式控制符如 %d%.2f%s%c用于指定输出的数据类型和格式。与 cout 不同printf 不会自动添加换行符你需要在格式字符串中显式包含 \n 来实现换行。 

请注意虽然 printf 在 C 中可用但它不提供类型安全性因此容易引发潜在的错误。C 的 iostream 库提供了更安全、更灵活和更符合现代 C 编程风格的方式来进行输入输出操作因此通常更适合 C 编程。

4.3 标准输出输入流

cin相当于键盘称为标准输入流cout相当于显示器称标准输出流

endl是向流的末尾部加入换行符

4.3.1 使用 cin 对象

cin 是C标准库中的输入流对象通常用于从标准输入设备键盘读取用户输入。你可以使用 >> 运算符来从 cin 中读取不同的数据类型例如整数、浮点数、字符、字符串等。

作用用于从键盘获取数据

关键字cin

语法 cin >> 变量

示例

#include<iostream>using namespace std;int main() {//整型输入int a  0;cout << 请输入整型变量 << endl;cin >> a;cout << 刚才输入的整型变量是 << a << endl;//浮点型输入double d  0;cout << 请输入浮点型变量 << endl;cin >> d;cout << 刚才输入的浮点型变量 << d << endl;//字符型输入char ch  0;cout << 请输入字符型变量 << endl;cin >> ch;cout << ch << endl;//字符串型输入string str;cout << 请输入字符串型变量 << endl;cin >> str;cout << str << endl;//布尔类型输入bool flag  true;cout << 请输入布尔型变量 << endl;cin >> flag;cout << flag << endl;system(pause);return EXIT_SUCCESS;}
4.3.2 使用 getline 函数

getline 函数用于从输入流中读取一行文本并存储在字符串中。它允许你读取包含空格的整行文本。下面是一个示例

#include <iostream>using namespace std;int main() {    string sentence;    cout << 请输入一句话: ;    getline(cin, sentence); // 读取整行文本    cout << 你输入的句子是:  << sentence << endl;    return 0;}

getline 函数需要两个参数输入流对象和一个字符串它会读取一行文本包括换行符存储在给定的字符串中。 

4.3.3 标准输出方式

cout 是C标准库中的输出流对象通常用于向标准输出设备屏幕输出数据。你可以使用 << 运算符将不同的数据类型输出到 cout 中例如整数、浮点数、字符、字符串等。

cout的一般格式为

cout<<表达式1<<表达式2<< ....<<表达式n;

下面是一个示例

#include <iostream>using namespace std;int main() {    int num  42;    cout << 整数:  << num << endl;    double value  3.14159;    cout << 浮点数:  << fixed << value << endl;    char character  A;    cout << 字符:  << character << endl;    string text  Hello, World!;    cout << 字符串:  << text << endl;    return 0;}

 可以写成多个cout语句

#include <iostream>using namespace std;int main() {    string text  Hello, World!;    cout << 字符串: ;    cout << Hello ;    cout <<  ;    cout << World! ;    cout << endl;    return 0;}
4.3.4 解释#include <iostream>

#include <iostream> 是C程序中的一个预处理指令preprocessor directive它用于包含标准输入输出流的头文件即 <iostream> 标准库。这个头文件中包含了用于输入和输出的各种类和函数其中最常见的是 cincout

具体作用如下

提供输入输出功能包含 <iostream> 头文件后你可以使用 cin 对象来接收用户输入以及使用 cout 对象来输出结果到标准输出设备通常是屏幕。

方便使用标准输入输出流这个头文件定义了用于输入和输出的类、函数和运算符重载使得你能够以一种更便捷的方式进行输入输出。

提供类型安全性<iostream> 头文件中的输入输出操作是类型安全的这意味着它们会自动适应不同的数据类型并在编译时检查类型匹配减少了类型相关的错误。

4.3.5 using namespace std;的作用

using namespace std; 是C中的一个命名空间指令它的作用是简化代码中的标准命名空间 std 的使用使得你可以直接访问 std 命名空间中定义的标识符而无需在每次使用它们时写明 std:: 前缀。

标准C库中的大部分标识符包括 cincoutstring 等都被定义在 std 命名空间中。如果不使用 using namespace std;你需要在每次使用这些标识符时显式指定命名空间例如 std::coutstd::string

以下是示例展示了使用和不使用 using namespace std; 的区别

使用 using namespace std;

#include <iostream>using namespace std;int main() {    int num;    cout << 请输入一个整数: ;    cin >> num;    cout << 你输入的整数是:  << num << endl;        return 0;}

不使用 using namespace std;

#include <iostream>int main() {    int num;    std::cout << 请输入一个整数: ;    std::cin >> num;    std::cout << 你输入的整数是:  << num << std::endl;        return 0;}

使用 using namespace std; 使代码更简洁但也可能引发命名冲突尤其当你的代码与其他库或命名空间中的标识符发生冲突时。因此一些程序员更喜欢显式指定命名空间以避免潜在的冲突。

5.流操作的控制 5.1 头文件说明#include <iomanip>

#include <iomanip> 是C标准库中的头文件它提供了一组用于格式化输入输出的工具和控制符。这个头文件允许你对输出进行更精细的格式化控制包括字段宽度、小数位数、对齐、填充等特别适用于控制输出的外观。

以下是一些 #include <iomanip> 头文件中提供的常用控制符和函数

setw(int width)设置字段宽度。这个控制符用于指定输出字段的最小宽度。如果输出的内容不够宽度将使用填充字符进行填充。例如cout << setw(5) << 42; 将输出 42其中字段宽度为5。

setprecision(int n)设置浮点数的小数点后位数。这个控制符用于指定浮点数的小数部分要显示的位数。例如cout << fixed << setprecision(2) << 3.14159; 将输出 3.14。

leftright这些控制符用于控制文本的对齐方式。left 使文本左对齐而 right 使文本右对齐。

例如

cout << left << setw(10) << 左对齐;cout << right << setw(10) << 右对齐;

setfill(char fillchar)设置填充字符。这个控制符用于指定在字段宽度未达到时要使用的填充字符。默认情况下填充字符是空格。

例如

cout << setfill(*) << setw(10) << 42; // 输出 ********42

<iomanip> 头文件提供了更多控制符和函数用于满足不同的输出格式需求。它对于需要精确控制输出格式的情况非常有用如生成表格、报表、货币格式等。

5.2 格式控制符 

常见的格式控制符包括

setw(int width)设置字段宽度。setprecision(int n)设置浮点数的小数点后位数。left左对齐输出。right右对齐输出。fixed固定小数点表示浮点数。scientific科学计数法表示浮点数。

例如;

#include <iostream>#include <iomanip>using namespace std;int main() {    double value  3.14159;    cout << 浮点数:  << fixed << setprecision(2) << value << endl;    return 0;}
5.3 控制符

C提供了一些控制符如 endl用于输出换行符和 flush用于刷新输出缓冲区用于控制输出的行为。

例如

#include <iostream>using namespace std;int main() {    cout << 这是一行文本 << endl;    cout << 这是另一行文本 << flush;    return 0;}

标签:
声明:无特别说明,转载请标明本文来源!