![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
heavenFrank
这个作者很懒,什么都没留下…
展开
-
c语言中的编译预处理命令
注意:1. 所有编译预处理语句以”#“开头2. 每个预处理命令必须单独占一行3. 语句末尾不使用分号作为结束符4. 预处理语句主要有宏,条件编译和文件包含1.无参宏定义语句的格式如下:#define 标识符 字符串作用: 用一个简单的名称代替一个长的字符串。标识符 称为”宏名“在编译时将宏名替换成字符串的过程称为”宏展开“或宏替换作用范围:定义之后,直到本文件末尾,但可用#undef终止作用域2.带参宏定义格式:#define 标识符(标识符1,标识符2,标识) 字符串如:#d转载 2020-06-16 15:56:39 · 6391 阅读 · 0 评论 -
全局变量与局部变量,静态变量与动态变量,内部函数与外部函数的区别
一、变量按作用域范围分类局部变量:在函数内定义的变量,作用域限于函数内。说明:(1)主函数定义的变量不能再其他函数中使用,主函数也不能使用其他函数定义的变量。(2)形参变量属于被调函数的局部变量,实参变量属于主调函数的局部变量。(3)允许在不同的函数中使用相同的变量名,但它们代表不同的对象,占用不同的存储单元,互不干扰。(4)在复合语句中也可以定义变量,但其作用域只能在复合语句内。全局变量:在函数外定义的变量,它的作用域是从变量定义开始,到程序文件的末尾。如果在定义点前的函数要使用该外部变量,要原创 2020-06-16 10:15:28 · 2341 阅读 · 0 评论 -
二维数组
定义int a[3][5]表示a是一个3行5列的矩阵二维数组的遍历输入for(i=0;i<3;i++){ for(j=0;j<5;j++){ scanf("%d",&board[i][j]); }}二维数组的初始化int a[][5]={ {0,1,2,3,4}, {2,3,4,5,6},};列数必须给出,行数可以由编译...原创 2020-03-24 22:28:23 · 137 阅读 · 0 评论 -
函数
定义函数是一块代码,接收零个或多个参数,做一件事情,并返回零个或一个值//函数头void sum(int begin, int end)//函数体{ int i; int sum=0; for ( i=begin; i<=end; i++ ) { sum += i; } printf("%d到%d的和是%d\n", begin...原创 2020-03-24 22:02:34 · 93 阅读 · 0 评论 -
数组
<类型> 变量名称[元素数量];int grades[100];double weight[20];元素数量必须是整数原创 2020-03-24 15:34:46 · 125 阅读 · 0 评论 -
指针
定义指针是保存地址的变量*p是一个指针int i;int *p=&i;\*或者*\int* p=&i;p指向ip的值是i的地址*p的值是i的值作为参数的指针可以使用函数 void f(int *p);在被调用的时候得到了某个变量的地址:int i=0;f(&i);在函数里可以通过*p这个指针访问外面这个i的地址#include<...原创 2020-04-03 11:39:44 · 350 阅读 · 0 评论 -
数组与指针的关系
函数参数表中的数组实际上是指针sizeof(a)==sizeof(int*)但是可以用数组的运算符[]进行运算因此以下四种函数原型是等价的:int sum(int *ar, int n);int sum(int *, int);int sum(int ar[], int n);int sum(int [], int);数组变量是特殊的指针数组变量本身表达地址,所以i...原创 2020-04-03 11:52:54 · 398 阅读 · 0 评论 -
字符
字符类型char是一种整数,也是一种特殊的类型:字符用单引号表示一个字符:‘a’''也是一个字符printf和scanf里用%c来输入输出字符字符的输入输出如何输入’1’这个字符给char c?scanf("%c",&c); 输入1scanf("%d",&i);c=i; 输入49因为’1’的ASCII编码是49,所以当c==49时,代表‘1’字符计算cha...原创 2020-04-03 14:53:02 · 567 阅读 · 0 评论 -
字符串
举例char word[]={‘H’,‘e’,‘l’,‘l’,‘o’,"!",’\0’};word[0]Hword[1]eword[2]lword[3]lword[4]oword[5]!word[6]\0定义字符串是以0结尾的一串字符**0或者’\0’是一样的,但是和’0’不同,'0’是一个字符,表示十进制的48...原创 2020-04-03 17:52:48 · 173 阅读 · 0 评论 -
C语言break和continue用法详解(跳出循环)
使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。break关键字break,用它来跳出 switch 语句。当 break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。使用 while 循环计算1加到10...转载 2020-04-07 17:22:46 · 2183 阅读 · 0 评论 -
指针的运算和malloc
给指针加1表示要让指针指向下一个变量int a[10];int *p=a;*(p+1)即是a[1]如果指针不是指向一片连续分配的空间,如数组,则这种运算没有意义指针可以做的运算有:加减一个整数(+,+=,-,-=)递增递减(++,–)两个指针相减(得到的是两个数组地址间能放几个这样的类型)指针比较<,<=,==,>,>=,!=都可以对指针做,用于比较它们...原创 2020-04-10 14:51:33 · 275 阅读 · 1 评论 -
结构类型——枚举
枚举是一种用户定义的数据类型,它用关键字enum以如下语法来声明:enum枚举类型名字{名字0,……,名字n};枚举类型名字通常并不真的使用,要用的是在大括号里的名字,因为它们就是常量符号,它们的类型时int,值则依次从0到n。如:enum colors{red,yellow,green};就创建了三个常量,red的值是0,yellow是1,green是2。当需要一些可以排列起来的常量值时,...原创 2020-04-10 22:31:51 · 178 阅读 · 0 评论 -
结构
声明结构的形式(有三种)p1和p2都是point,里面有x和y的值struct point{ int x; int y;};struct point p1,p2;或struct point{ int x; int y;}p1,p2;p1和p2都是一种无名结构,里面有x和ystruct{ int x; int y;}p1,p2;...原创 2020-04-19 21:55:16 · 1035 阅读 · 0 评论 -
main函数参数int main(int argc, char *argv[])解析
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。所以C99标准中规定只有以下两种定义方式是正确的:int main(void) //无参形式,void可省略int main(int argc, char *argv[]) //有参形式当然有参形式可以进行演变,所以下面的写法也是正确的(同时变量名是可以更换的):int main(int argc, char...转载 2020-06-13 23:49:15 · 1156 阅读 · 0 评论 -
字符串函数和计算
字符串计算1. 输入输出用%s char string[8]; scanf("%7s",string); printf("%7s",string);scanf读入一个单词(读到空格、tab、回车为止)%7s表明最多只能读7个字符(还有结尾的\0)%s里面的数字表示最多允许读入的字符的数量,这个数字应该比数组的数字小1个2. 切记字符串指针要初始化char *s = “abcdefg”; //这个初始化过程,是将指针cp指向字符串的首地址,而并不是传递字符串的值。字符型数组的操作要用函数原创 2020-06-14 21:57:32 · 767 阅读 · 0 评论 -
C语言之enum的用法和注意事项(枚举类型)
在C语言中有一个关键字是enum,枚举类型,不知道大家平时用吗,但是enum关键字在有些时候是非常方面的。下面说一下使用enum关键字的几种情况。定义枚举类型定义用关键字enum标识,形式为:enum 标识符 { 枚举数据表};注意:(1)enum是关键字,标识枚举类型。定义枚举类型必须用enum开头。(2)枚举数据表中的名字是程序员自己设定,这些名字只是一个符号。但注意命名时要提高程序的可读性。枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔转载 2020-06-14 23:22:13 · 72027 阅读 · 20 评论