c/c++语言开发共享C++学习指南笔记

第一章 开始学习 C/C++ 第一个程序 代码框架 XP环境下控制台一闪而过的问题 第二章 控制台输入与输出 2.1 控制台输出 2.1.1 输出整数 printf("I am %d n",33); 2.1.2 用变量表示整数 2.1.3 指定显示宽度 %?d 和 %0?d (问号等于宽度值) 2 …


第一章 开始学习 c/c++

第一个程序

///////////////ch01_a1////////////  #include <stdio.h>  int main()  {      printf("hello world! n");      return 0;  }

代码框架

#include <stdio.h>  int main()  {      return 0;  }

xp环境下控制台一闪而过的问题

#include <stdio.h>  #include <stdlib.h>  int main()  {      printf("hello world! n");      // 添加按下任意键关闭控制台      system("pause")      return 0;  }

 


 

第二章 控制台输入与输出

2.1 控制台输出

printf("i am qleo n");  printf("我是谁谁谁 n");

2.1.1 输出整数

 printf(“i am %d n”,33); 

2.1.2 用变量表示整数

int age = 33  printf("i am %d n",age);

// 同一行打印两个整数      int a = 10;      int b = 50;      printf("a: %d,b: %d n",a,b);

2.1.3 指定显示宽度 %?d 和 %0?d (问号等于宽度值)

    // 使用 %4d 来显示数字      printf("number %4d,ok n",3);      printf("number %4d,ok n",33);      printf("number %4d,ok n",333);      // 使用 %04d 来显示数字      printf("number %04d,ok n",3);      printf("number %04d,ok n",33);      printf("number %04d,ok n",333);

C++学习指南笔记

2.1.4 输出小数

// 输出一个小数  printf("x = %lf n",12.35);  // 输出两个小数  printf("x = %lf,y = %lf n",12.35,90.01);

2.1.5 用变量表示小数

double a = 12.35;  printf("x = %lf n",a);

2.1.6 指定小数点后的位置(%.?lf 问号等于小数后的位数)

double a = 12.35719987;  printf("a = %.2lf n",a);

2.2 控制台输入

可以用 scanf 操作,让用户从控制台输入一个整数或小数。其中,scan 表示输入扫描,f 表示 format,表示接收输入并格式化数据的意思。

2.2.1 输入整数

#include <stdio.h>  int main()  {      int a = 0;      scanf("%d",&a);      printf("got:%d n",a);      return 0;  }

2.2.2 输入小数

#include <stdio.h>  int main()  {      double f = 0;      scanf("%lf",&f);      printf("got:%lf n",f);      return 0;  }

2.2.3 一次输入多个数

#include <stdio.h>  int main()  {      int a;      double x;      scanf("%d",&a);      scanf("%lf",&x);      printf("got:%d,%lf n",a,x);      return 0;  }

 


第三章 变量与常量

变量

C++学习指南笔记

常量

当在类型名前面加上关键字 const 后,表示它是一个只读的量.这种变量不能修改它的值,因而称为常量.

#include<iostream>  int main()  {      const int max_size = 1024;      printf("a : %d n",max_size);    // 读取 const 常量的值      int b = max_size;                // 将 max_size 的值赋值给变量 b      printf("b:%d n",b);      return 0;  }

第四章 数组

数组的定义

 char arr[5]; 

其中 arr 称为”数组变量”,简称”数组”,它表示5个char型数据 . 把每一个数据称为一个”元素”.

数组的基本使用方法

数组的初始值

char arr[5] = {90,91,92,93,94};

访问数组中的元素

#include<stdio.h>  int main()  {      int values[5] = {1,2,3,4,5};      values[0] = 11;    // 将第一个元素的值设为11      printf("%d n",values[0]);// 打印第一个元素的值      return 0;  }

用 sizeof 取得数组的大小

int arr[100];  int size = sizeof(arr);// 大小为 100 * 4

 


第五章 字符与字符数组

5.2 字符的表示

char ch = 65;    // 则ch代表的是大写字母 'a'  char ch2 = 49;    // 则 ch2 代表的是数字 '1'  // 显然,如果用 short 或 int 来表示字符就显的大材小用,浪费空间.

5.3 字符的显示

 printf(“got:%c n”,65); 

5.4 字符常量

在 c/c++ 代码中,直接用字符常量来代表一个字符的 ascii码,使用单引号表示.

 char ch = ‘a’; 

5.5 字符数组

字符有以下两种初始化方法.

(1) 像普通数组一样初始化

    char str[6] = {'h','e','l','l','o',''};

(2) 特殊的初始化方法

 char str[6] = “hello”; 

需要注意的是,当用字符数组来存储字符串时,必须以 ’’ 结尾.把 ’’ 称为字符串的结束符.它的 ascii 码数值为 0 .注意, ‘’ 和 0 这两种写法是完全等效的.

5.5.1 输出字符串

char str[6] = "hello";  printf("string:%s n",str);

5.5.2 输入字符串

可以使用 gets 来获取字符串 . 

 1 #include <stdio.h>   2 int main()   3 {   4     /*用户在控制台输入一个字符串,   5     按回车键结束,   6     所有输入的字符被存储到 buf 数组中       7     */   8     char buf[128];   9     gets(buf);  10     printf("got:%s n",buf);  11     return 0;  12 }

5.5.4 字符串的截断

利用字符串的结束符,可以轻易地截断一个字符串.

char buf[32] = "hello,world";  buf[5] = 0;  printf("result:%s n",buf);

由于 buf[5] 被设置成了结束符,所以字符串 buf 的有小部分就是 “hello” 了.

5.6 转义字符

所有的转义字符和所对应的意义:
转义字符
意义
ascii码值(十进制)
a
响铃(bel)
007
b
退格(bs) ,将当前位置移到前一列
008
f
换页(ff),将当前位置移到下页开头
012
n
换行(lf) ,将当前位置移到下一行开头
010
r
回车(cr) ,将当前位置移到本行开头
013
t
水平制表(ht) (跳到下一个tab位置)
009
v
垂直制表(vt)
011
\
代表一个反斜线字符”’
092
代表一个单引号(撇号)字符
039
代表一个双引号字符
034
? 代表一个问号 063
空字符(null)
000
ddd
1到3位八进制数所代表的任意字符
三位八进制
xhh
1到2位十六进制所代表的任意字符
二位十六进制
注意:区分,斜杠:”/” 与 反斜杠:”” ,此处不可互换 
 

第六章 表达式与操作符

6.1 算术操作符

运算符 描述 实例
+ 把两个操作数相加 a + b 将得到 30
从第一个操作数中减去第二个操作数 a – b 将得到 -10
* 把两个操作数相乘 a * b 将得到 200
/ 分子除以分母 b / a 将得到 2
% 取模运算符,整除后的余数 b % a 将得到 0
++ 自增运算符,整数值增加 1 a++ 将得到 11
自减运算符,整数值减少 1 a– 将得到 9

6.2 赋值操作符

运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边操作数 c = a + b 将把 a + b 的值赋给 c
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 c += a 相当于 c = c + a
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 c -= a 相当于 c = c – a
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 c *= a 相当于 c = c * a
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 c /= a 相当于 c = c / a
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 c %= a 相当于 c = c % a
<<= 左移且赋值运算符 c <<= 2 等同于 c = c << 2
>>= 右移且赋值运算符 c >>= 2 等同于 c = c >> 2
&= 按位与且赋值运算符 c &= 2 等同于 c = c & 2
^= 按位异或且赋值运算符 c ^= 2 等同于 c = c ^ 2
|= 按位或且赋值运算符 c |= 2 等同于 c = c | 2

6.3 关系表达式

运算符 描述 实例
== 检查两个操作数的值是否相等,如果相等则条件为真。 (a == b) 不为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (a != b) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (a > b) 不为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (a < b) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (a >= b) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (a <= b) 为真。

6.5 逻辑表达式

运算符 描述 实例
&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (a && b) 为假。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (a || b) 为真。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(a && b) 为真。

杂项运算符

运算符 描述
sizeof 返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。
condition ? x : y 。如果 condition 为真 ? 则值为 x : 否则值为 y。
, 会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。
.(点)和 ->(箭头) 用于引用类、结构和共用体的成员。
cast 把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。
&  返回变量的地址。例如 &a; 将给出变量的实际地址。
*  指向一个变量。例如,*var; 将指向变量 var。

c++ 中的运算符优先级

类别  运算符  结合性 
后缀  () [] -> . ++ – –   从左到右 
一元  + – ! ~ ++ – – (type)* & sizeof  从右到左 
乘除  * / %  从左到右 
加减  + –  从左到右 
移位  << >>  从左到右 
关系  < <= > >=  从左到右 
相等  == !=  从左到右 
位与 and  从左到右 
位异或 xor  从左到右 
位或 or  从左到右 
逻辑与 and  &&  从左到右 
逻辑或 or  ||  从左到右 
条件  ?:  从右到左 
赋值  = += -= *= /= %=>>= <<= &= ^= |=  从右到左 
逗号  从左到右 


第七章 语句

7.2 if 语句

int x = 61;  if(x >= 60)  {  printf("pass ! n");  }else  {  printf("fail ! n");  }

7.2.3 完全形式 if…else if…else if…else

#include <stdio.h>  int main()  {      int x = 71;      if(x >= 90)      {          printf("got a n");      }else if(x >= 80)      {          printf("got b n");      }else if(x >= 70)      {          printf("got c n");      }else if(x >= 60)      {          printf("got d n");      }else      {          printf("got e n");      }      printf("that's over n");      return 0;  }

7.3 switch 语句

#include <stdio.h>  int main()  {      int day = 2;      switch(day)      {          case 1:              printf("go to office n");              break;          case 2:              printf("go out n");              break;          default:              printf("stay at home n");      }          return 0;  }

7.4 for 语句

#include <stdio.h>  int main()  {      int a[100];      int i;      for (i = 0; i < 100; i++)      {          a[i] = i + 1;      }      return 0;  }

7.5 while 语句

#include <stdio.h>  int main()  {      int a[100];      int i = 0;    // 初始化      while(i < 100)      {          a[i] = i + 1;          i++;    // 后置过程      }      return 0;  }

7.6 do…while 语句

除了 for 语句 、while 语句之外,还有一种 do…while 语句可用于表示循环.其基本形式为:

do  {      statement;  }while(expr);

其中,expr 表达式,statement 是一条但语句或者复合语句.

语法规则:

(1) 执行 statement.

(2) 若 expr 的值为真,则执行 (1) .如 expr 为假,则退出 while 语句.

简而言之:先执行一轮,再检测 expr 的值,如果 expr 为真则接着执行下一轮.如果为假则结束循环.


第八章 函数

8.2 初步认识函数

return_type name(arguments)  {     body  }

其中,

name:函数名.最好起一个有意义的免费精选名字大全.

arguments:参数列表.每个参数以逗号分开,如 int a, int b.

return_typr:返回值类型.

body:函数体.即函数的具体实现.

8.8 函数声明与函数定义

当一个 cpp 文件里有多个函数,且它们之间有调用关系时,那么它们的先后顺序就变得复杂.需要保证,一个函数调用之前,该函数已经被定义.

8.8.1 函数的声明

函数的声明,在形式上就是把函数定义中的函数体去掉,只保留函数名、参数列表、返回值类型,并以分号结束。例如:

int is_alpha(char ch);  void print_ascii();

当一个函数被声明后,它就可以被直接调用,而不一定要把函数定义也放在前面。这就解决了函数调用顺序问题。通常把各个函数写在前面,然后函数定义就不需要保证顺序了。


 

第九章 指针

9.2 指针的概念

#include <stdio.h>  int main()  {      int a = 10;      int b = 11;      int* p;      p = &a;            // p 指向变量 a 的地址      p = &b;            // 修改 p 的值,现在指向变量 b 的地址      return 0;  }

9.3 星号操作

#include <stdio.h>  int main()  {      int a = 10;      int b = 11;      int* p = &a;        // p 指向 a      *p = 0xa0a0a0a0;    // 写操作:修改 p 指向的内存地址      *p = 0x13141516;    // 写操作:修改 p 指向的内存地址      int b = *p;            // 读操作:读取 p 指向的内存的值      int c = *p + 2;        // 读操作:读取 p 指向的内存的值      return 0;  }

9.4 指针与数组

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/608127.html

(0)
上一篇 2021年5月15日
下一篇 2021年5月15日

精彩推荐