博主在回忆c语言的基本知识时,突然发现自增自减运算符(--、++)这个知识点有些模糊不清,故博主为了给同为小白的同学们提供一些经验,特写下这篇文章。 首先,自增自减运算符共有两种操作方式。...#include //自增自减运算符的测试 int main() { int a = 21; int c; c = a--; printf("%d\n", c); a = 21...; c = a++; printf("%d\n", c); a = 21; c = --a; printf("%d\n", c); a = 21; c = ++a; printf("%d...由此可知,我们可以得到一个结论:诸如“a++”类自增自减运算符在变量之后的,进行操作时是先赋值,后运算;而“++a”类的操作则正是与此相反。...这篇文章主要是针对c语言小白,各位大神还请借道哈,不要喷我,如果有错误还请帮忙指出,不胜感激。 本人也是小白一枚,愿与诸君共同进步,通向成神之路!!!
//变量a+10 =20 a = a + 10; printf("a1=%d\n",a); //加等表达式 ==》a=a+10 =20+10=30 a+= 10; printf("a2=...%d\n",a); //减等表达式 ==>a=a-10=30-10=20 a-= 10; printf("a3=%d\n",a); //乘等表达式 ==>a=a*10=20*10=200 a*...10 a=10; //自增表达式 ,在原来a的基础上+1再赋值 给a =10+1 a++; printf("a5=%d\n",a); //重定义变量a=10 a=10; //设置变量c=...10,然后循环的时候再10+1 int c = a++; //现将a的值自加 ,后将a的值赋给c,这时c=12 c = ++a; printf("a10=%d\n",c); int b =...a--; int b = --a; return 0; } 初学自增自减表达式
int arr[]={1,2,3,4,5}; 而所对应的下标为0,1,2,3,4。...printf("p1=%p\n", p1); printf("p1+1=%p\n", p1+1); printf("p2=%p\n", p2); printf("p2+1=%p\n",...2. 指针-指针 在指针变量相同类型时,计算出的是中间间隔的个数。...int ret = p1-p2 ; printf("%d\n", ret); return 0; } 结果为 指针类型不同时不能进行指针的加减运算。...2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 除此之外,任何地方使用数组名,数组名都表示首元素的地址。
数据类型;常量,变量 数据类型 c语言如何描述:常量——不能改变的量; 变量——能被改变的量 定义变量的方法 #下表为定义整型变量的示范案例,最终执行结果为...#include int main() { int age=20; age=age+2; printf("%d\n",age); return 0; } 打印时需注意:1....打印整型——%d 2.打印单精度浮点型(float)——%f 3.打印双精度浮点型(double...2.全局变量的作用域的是整个工程。 生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。 ...2.全局变量的生命周期是:整个程序的生命周期。
类型在c语言中为什么有这么多种?因为应用场景不同,解决应用场景应对方式不同,需要空间的大小也不同。 sizeof不仅可以求内置类型,还能够求自定义类型。...方法一:减一然后符号位不变,按位取反。 方法二:符号位不变,其他位直接按位取反。再加一。(推荐使用方法二)计算机硬件完成,只用一套系统就可以完成。...char c=0这样写是没有问题的,但是不便于用户理解。...那么,我们就理解了,对于多少位,应该是这样一个范围: 那么,就让我们根据一些练习题练习一下,看看是否掌握了吧 int i=-20,等于2的4次方+2的2次方,因为都是4个字节,所以都是32个比特位。...所以c99当中的bool类型可移植性较好。 运行下面这个程序: 我们会发现输出结果是1 2 3。 第一种比较方法不推荐,因为我们会误认为是整数比较。第二种方法也不推荐,false只有C99支持。
C语言中给了数组的定义:一组相同类型元素的集合 8.1数组定义 数组的作用就是存放一组相同类型的数,[]里面是数组的大小,10表示这个数组可以存放10个元素,arr是数组名,int是表示这个数组是整形数组...int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素 8.2数组的下标 C语言规定:数组的每个元素都有一个下标,下标是从0开始的。...1.算数操作符(加,减,乘,除,取模) + - * / % int r = 7/2; float r = 7/2; 对于除法来说,除号的两端都是整数的话,执行的是整数除法....在C语言中,0表示假,非0表示真。&和*我们讲指针时再讲。·~后期讲。 !就可以把真假互换。 sizeof可以计算类型大小。...感谢大家的阅读,下期我们将结束初识C语言,让我们下期再见。
先说一下C语言中的运算是什么?C语言中的运算就是对数据进行操作、处理的过程。那么运算符又干什么的呢?运算符就是指定该运算的处理方式。 那么C语言中又有哪些运算符呢?...如下所示: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符 2、算术运算符 C语言基本算术运算符如下表: ?...注:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。 另:关于自增自减运算符,会在下一小节讲解。...3、自增与自减运算符 自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式: ?...解析:C语言中运算符中最高等级的为(),因此执行过程为: 1、先计算a>3和a+3的结果,计算后算式为1*a-14%3; 2、再计算1*a和14%3的结果,计算后算式为11-2; 3、最后算出结果为9。
C语言中的模2除法: 模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。所以实际上就是异或。然后再移位移位做下一位的模2减。...步骤如下: a、用除数对被除数最高n位做模2减,没有借位。 (模2减规则:0-0=0 0-1=1 1-0=1 1-1=0) b、除数右移一位,若余数最高位为1,商为1,并对余数做模2减。...c、一直做到余数的位数小于除数时,该余数就是最终余数。...1011 ———— 01000 1011 ———— 00110 2.
最 好的安排是在某个相关的 .c 文件中定义, 然后在头文件 (.h) 中进行外部声明, 在需 要使用的时候, 只要包含对应的头文件即可。...定义变量的 .c 文件也应该包含该头 文件, 以便编译器检查定义和声明的一致性。这条规则提供了高度的可移植性: 它和 ANSI C 标准一致, 同时也兼容大多 数 ANSI 前的编译器和连接器。...Unix 编译器和连接器通常使用 “通用模式” 允许 多重定义, 只要保证最多对一处进行初始化就可以了; ANSI C 标准称这种行为为 “公共扩展”, 没有语带双关的意思。...特 别是, 永远不要把外部函数的原型放到 .c 文件中: 通常它与定义的一致性不能得 到检查, 而矛盾的原型比不用还糟糕。 有时候,正是那些意想不到之人,成就了无人能成之事。 ——图灵
2.当我们知道数组首元素的地址的时候,因为数组是连续存放的,所以通过指针就可以便利访问数组。 3.数组是可以通过指针来访问的。 一、二级指针 2.指针数组 指针数组是指针还是数组?
define MAX_SIZE A+B struct _Record_Struct { unsigned char Env_Alarm_ID : 4; unsigned char Para1 : 2;...)malloc(sizeof(struct _Record_Struct) * MAX_SIZE); 错误选型:B 正确选择:D 题目分析: 也即最后malloc( ),括号中的表达式为(3*2+...malloc(sizeof(struct _Record_Struct) * MAX_SIZE); //宏替换后: malloc(sizeof(struct _Record_Struct) * 2...+ 3 ); //而不是: malloc(sizeof(struct _Record_Struct) * (2 + 3) );
例53:C语言编程求1!+2!+3!+...20!...解题思路:sum不应该定义为int或者long型,假如使用的编译器是Visual C++6.0时,int和long型数据在内存都占4个字节,数据的范围在 -21亿~21亿。 ...C语言 | 求1!+2!+...+20! 更多案例可以go公众号:C语言入门到精通
3,c + 2,c + 1,c }; char*** cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *-- * ++cpp + 3);...char** cp[] = { c + 3,c + 2,c + 1,c };,cp是一个二级字符指针数组,存放了数组c的元素。...也就是数组c的第三个元素的地址。 **++cpp再次解引用得到了数组c的第三个元素c[2],也就是字符串POINT首元素的地址,之后输出字符串POINT。...也就是数组c的第二个元素的地址c+1。 --*cpp,前置自减c+1 - 1 ==> c,是数组c的首元素的地址。 *--*cpp再次解引用得到了c[0],也就是字符串ENTER首元素的地址。...cpp-2指向了数组cp的第一个元素&cp[0],解引用之后得到了cp[0],也就是数组c的第四个元素的地址c+3。
C语言的结构 一个C语言程序由若干个头文件与多个函数构成,每个函数有自己的功能,例如 #include //stdio.h就是头文件 int main(void) { //从...C语言由函数构成,一个C程序中会有很多个函数,为了更好的区分这些函数,所以给每一个函数起一个名字,这个名字就是标识符。...C语言的代码由一行行语句组成。语句就是程序执行的一个操作命令。C语言规定,语句必须使用分号结尾,除非有明确规定可以不写分号。 int Number = 1 语句 C语言的代码由一行行语句组成。...表达式 C语言的计算是通过表达式完成的。表达式是一个计算式,用来获取值。 1+2 在这个地方的1+2就是一个表达式,用来获取1+2这个算术的计算结果。 在表达式后加上分号,也是语句,但是没有作用。...标准库、头文件 在C程序的编写过程中,有些功能不一定非要自己写,C语言本身已经自带了不少了,我们只要直接调用就好了。比如最常用到的printf()这个函数就是C语言自带的。
新手C语言学习(2) C语言典型例题——判断一个数是否为质数(素数) 这里这只介绍一种方法 1.首先什么是质数(素数) 2.错误示范 3.正确示范 首先什么是质数(素数) 我开始认为素数和质数是两个东西...除了1和它本身之外,不能被其他数所整除即为质数(素数) 例如11,除了1和它本身11没有其他数可以将它整除,所以11是个质数(素数) 2.错误示范 开始我并没有直接从网上搜索相关教程视频...main(void) { int i = 0; printf("请输入一个小于100的数\n"); scanf("%d\n",&i); while (i<=100) { if (i % 2...//return终止函数 return; } } printf("%d是质数\n", num); return 0; } 用到的知识,(1)for循环语句 for(exp1;exp2;...exp2为条件判断部分,判断条件是否终止。 exp3为循环调整。 把while循环中的三个部分放到了一起。 (2)%求模(求余数)运算。
C语言的结构 一个C语言程序由若干个头文件与多个函数构成,每个函数有自己的功能,例如 C 代码: #include //stdio.h就是头文件 int main(void) {...C语言由函数构成,一个C程序中会有很多个函数,为了更好的区分这些函数,所以给每一个函数起一个名字,这个名字就是标识符。...C语言的代码由一行行语句组成。语句就是程序执行的一个操作命令。C语言规定,语句必须使用分号结尾,除非有明确规定可以不写分号。...表达式 C语言的计算是通过表达式完成的。表达式是一个计算式,用来获取值。 C 代码: 1+2 在这个地方的1+2就是一个表达式,用来获取1+2这个算术的计算结果。...标准库、头文件 在C程序的编写过程中,有些功能不一定非要自己写,C语言本身已经自带了不少了,我们只要直接调用就好了。比如最常用到的printf()这个函数就是C语言自带的。
在 C++ 中,预增(或预减)可用作左值,但后增(或后减)不能用作左值。
枚举类型的说明: 1.声明:enum Color{red,yellow,blue,white,black}; 2.定义:enum Color i,j,k,pri; 3.枚举元素代表一个整数,默认顺序是从...5.C99标准把枚举类型作为一种整型数据,所以枚举类型是应该支持自加一操作的,《谭浩强 C程序设计》中也应用了枚举类型自加的操作,比如我们写这样一个代码: #include int...black;i++) { printf("当为第%d个颜色\n",i); } getchar(); return 0; } 这时应该打印出4列话才对,但是我用vs2010 把文件后缀改成.c,...所以我只能理解为微软对C语言的支持不是太好,C99中的一些特性并没有支持。
C++....; int i; printf("The sixth charcter is %c\n", a[5]); for (i = 0; a[i] !...),所以对于函数来说很关键的就是函数中的第一句代码的地址,这个地址就是所谓的函数地址,在C语言中用函数名这个符号来表示; (4)结合函数的实质,函数指针其实就是一个普通变量,这个普通变量的类型是函数指针变量类型...return 0; } int * GetDate(int wk, int dy) { static int calendar[5][7] = { { 1, 2,...- 1]; } 结果如下: 【工程案例】 #include int main() { int x = 89; int y = 92; int *p[2]
C语言基本数据类型 ---- Tip: 1B(字节) = 8位(字符) 1、数值类型 a、整型 1)、短整型(short、unsigned short(无符号短整型)):2 bytes...c、long mIntVariable = 3; d、float mFloatVariable = 3.14; e、double mDoubleVariable = 3.14; f、char mChar...= 'A'; 注意: 变量名命名规范: a、变量由数字、字母、下划线组成;eg:Name, Name1, Name_1 b、首字母必须是字母、下划线;eg:mAge, _age c、变量不能是C语言关键字或者保留字...typedef unsigned union void volatile while 格式类型转换符: 表示在当前位置需要声明一个指定类型的数据,供程序使用 数据类型与格式类型转换符对照表: char %c...scanf("%c,%c", &mChar_1, &mChar_2); printf("mChar_1 = %c\nmChar_2 = %c\n", mChar_1, mChar_2); int number
领取专属 10元无门槛券
手把手带您无忧上云