评论

收藏

[C++] C语言

编程语言 编程语言 发布于:2021-07-13 10:29 | 阅读数:511 | 评论:0

  
汇编器汇编语言
编译器C语言面向过程
解释器Shell
变量
extern修饰
static修饰
函数
内部函数/静态函数
使用static修饰函数
外部函数
使用extern修饰函数
数据类型
基本数据类型int
float
double
char
基本数据类型修饰符short短型
long长型
signed有符号型
unsigned无符号型
指针类型void*
构造类型数组
struct
union
enum
空类型void
[tr]x16-bit编译器32-bit编译器64-bit编译器[/tr]
char111
void *248
short int222
unsigned int244
int244
float444
double888
long448
unsigned long448
long long888
循环语句do-while
while
for
条件语句if
if-else
switch
goto语句
空语句
注释/* */
//
运算符
  算术运算符
+ - * / % ++ –
  关系运算符
== != > < >= <=
在C语言中关系运算的结果为’真’返回1,为’假’返回0.
在C语言中任何非0值都为’真’,只有0值才为’假’.
在Java语言中关系运算的结果为’真’返回true,为’假’返回false.
  赋值运算符
= += -= *= /= %= <<= >>= &= |= ^=
  逻辑运算符
&& || !
在C语言中逻辑运算的结果为’真’返回1,为’假’返回0
  按位运算符
& | ^ ~ << >>
  其他运算符
sizeof()
? :
,
.与->
Cast
&
*
  优先级
! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
[tr]格式符功能[/tr]
%d以带符号的十进制形式输出整数(但正数不输出正号+)
%o以不带符号的八进制形式输出整数
%x以不带符号的十六进制形式输出整数
%u以不带符号的十进制形式输出整数
%c输出一个字符
%s输出一个或多个字符
%f以小数形式输出单、双精度数,默认输出6位小数
%e以标准指数形式输出单、双精度数,数字部分小数位数为6位
printf("Hello,World")
printf("count is %d", 26)
printf("life is %d", 12);life is 12
printf("life is %4d", 12);life is  12
printf("life is %-4d", 12);life is 12
printf("life is %f", 12.232);life is 12.232000
printf("life is %.2f", 12.23521);life is 12.24
printf("life is %8.2f", 12.23521);life is   12.24
printf("life is %8.2f", 175352932.23521);life is 175352932.25
数组
  数组名是个常量,代表着数组的地址,也就是数组的起始地址.
C语言中编译器不会对数组下标越界进行检查
一维数组
二维数组
  初始化时行数可以省略
初始化时列数不可省略
字符串
字符串输出函数printf
char arr[3] = {'m', 'j', '\0'};
printf("%s", arr);
字符串输出函数puts
char arr[] = "python";
puts(arr);// 从arr首地址开始输出字符,直到\0字符为止.
  puts函数输出一个字符串后会自动换行
puts函数一次只能输出一个字符串,printf函数则可以同时输出多个字符串
字符串输入函数scanf
char arr[10];
scanf("%s", arr);// 从arr的首地址开始存放用户输入的字符,存放完毕后,系统会自动在尾部加上一个结束标记\0
字符串输入函数gets
char arr[10];
gets(arr);// 从arr的首地址开始存放用户输入的字符,存放完毕后,系统会自动在尾部加上一个结束标记\0
  gets一次只能读取一个字符串,scanf则可以同时读取多个字符串.
gets可以读入包含空格、tab的字符串,直到遇到回车为止. scanf不能用来读入空格、tab.
//输出大写字母A
putchar(65)

//输出大写字母A
putchar(‘A’)

//输出大写字母A
int i = 65;
putchar(i);

// putchar一次只能输出一个字符,而printf可以同时输出多个字符.
printf("%c %c %c", 'A', 'B', 'a');

// 将用户输入的字符赋值给变量c
char c;
c = getchar();
/*
getchar可以读入空格、tab,直到遇到回车为止. scanf则不能读入空格和tab.
getchar一次只能读入一个字符, scanf则可以同时接收多个字符.
getchar可以读入回车换行符,这时候需要敲2次回车键. 第1次敲的回车换行符被getchar读入,第2次敲的回车键代表输入结束.
*/


/*
strlen计算字符串中字符个数,不包括\0
*/
// 长度2
int size = strlen("mj");

// 长度3
char s1[] = "lmj";
int size1 = strlen(s1);

// 长度2
char s2[] = {'m', 'j', '\0', 'l', 'm', 'j', '\0'};
int size2 = strlen(s2);


// 字符串dest内容是mj
char dest[10];
char src[] = {'m', 'j', '\0', 'l', 'm', 'j', '\0'};
strcpy(dest, src);

// 字符串dest内容是LOVEOC
char dest[30] = "LOVE";
strcat(dest, "OC");

// 字符串dest内容是LmjOC
char dest[30] = {'L', 'm', 'j', '\0', 'L', 'o', 'v', 'e', '\0'};
strcat(dest, "OC");

/*
strcmp比较字符串大小

strcmp(s1,s2)
1.两个字符串从左至右逐个字符比较(按照字符的ASCII码值的大小),直到字符不相同或者遇见'\0'为止.
2.如果全部字符都相同则返回值为0
3.如果不相同,则返回两个字符串中第一个不相同的字符ASCII码值的差值.即s1大于s2时函数返回值为正值,否则为负值.
*/
结构体
// 结构体与结构体变量的定义
struct Student {
char *name;
  int age;
};
struct Student stu;

struct Student {
char *name;
  int age;
} stu;

struct {
char *name;
  int age;
} stu;
// 结构体变量初始化
struct Student {
char *name;
  int age;
};
struct Student stu = {"Tom","27"};

struct Student {
char *name;
  int age;
};
struct Student stu;
stu.age = 27;
// 结构体数组
struct Student {
char *name;
  int age;
};
struct Student stu[3];

struct Student {
char *name;
  int age;
} stu[3];

struct {
char *name;
  int age;
} stu[3];
// 结构体数组初始化
struct {
char *name;
  int age;
} stu[2] = {{"python",3},{"Java",12}};
预处理指令
#include <>//直接到C语言库函数头文件所在的目录中寻找文件.

#include ""//先在源程序当前目录下寻找; 若找不到再到系统的PATH路径下寻找; 最后才到C语言库函数头文件所在的目录中寻找文件.
条件编译
// 判断宏定义
#if PI==0
   …
#elif PI>0
   …
#else
   …
#endif
// 判断是否定义宏PI
#if defined(PI)
   …
#endif
// 判断是否定义宏PI
#if !defined(PI)
   …
#endif
// 判断是否定义宏PI
#ifdef PI
   …
#endif
// 判断是否定义宏PI
#ifndef PI
   …
#endif
  个人网站
DSC0000.jpeg   
关注下面的标签,发现更多相似文章