- 博客(16)
- 收藏
- 关注
原创 2024.9.22
由于int的范围大于short,short用d也可正常输入输出,但long long太大不行。输入整型要注意是short还是int还是long long。short用hd,int用d,long long用lld。
2024-09-22 12:37:11
236
原创 2024.9.19 = 和== switch
if(a==10)是判断a 是否等于10。//建议写成if(10==a),因为错输成a=10编译器不会报错,但错输成10=a会报错。
2024-09-19 20:44:00
141
原创 2024.9.18结构体模板\if和else
/printf("%d",(*p).price)和printf("%d",p->price)都可替代此行。//使用指针变量 struct book*p=&b1 //b1为结构体变量。//printf("%s",(*p).name)和printf("%s",p->name)都可替代此行。在C语言中else会和距离最近的未匹配的if进行匹配 // if和else在没有使用{}的情况下只会执行第一句代码。//*p可改变a的值就像是在此处写下a=20;}//指针变量用->,结构体变量用.
2024-09-18 21:39:52
220
原创 00007(很懒)
通过*p=10我们可以改变a的值为10,类似解引用操作的形式可以帮助访问存储地址或修改存储地址内的东西,printf("%p",p)和printf("%p",&a)起到相同作用,注意指针变量有自己独属的地址,p是变量名,他只是存储了其他的地址,并不使用存储的地址。在内存空间里给了一处地址,printf("%p",&a)可以打印存储a的地址的具体信息(代表地址的数字和字母)int*p=&a可以帮助我们修改a(int* char* 都是指针类型,p是定义的指针变量)存储a的内存地址。
2024-09-16 20:22:42
184
原创 00006(比大小,宏定义使用)
函数比较大小:int main()int a,b;return 0;略显复杂。宏定义比较大小:x:y)int main()int a,b;return 0;简单一些。直接条件操作符:int main()int a,b;a:b);return 0;更易理解。
2024-09-15 20:00:07
240
原创 00005(return)
在比较三个及以上的数的大小时,要谨慎使用if else,在一个函数内谨慎使用返回数值的形式,因为他会结束往后的代码(注意,若是在main函数外定义的函数内使用了return,在main函数内调用该函数并不会时调用该函数之后的代码失效,只会使自己本身停止)return只能返还一个数值,类似return a=b的形式是错误的,像return a*b,return a+b就是正确的,在c语言中,return代表结束,return后的代码不会被运行(在一个函数内,在一个作用域内,在一个人{}内)。
2024-09-14 12:20:33
260
原创 00004(大定义域内的变量会被小定义域修改操作)
以上代码中的n%=10修改了n的值,因为n时定义在main()里的变量,所以影响其他作用域,在求位数上的数字时,要谨慎使用%=(取余后赋值)的形式,改用%(取余)的形式。小作用域不会影响大作用域,除非是小作用域和大作用域定义了一个相同的变量,例如上述的n。
2024-09-13 21:09:07
156
原创 00004(赋值有先后)
这是一段求十位位置数字的代码,在a%=10执行后的所有a的值都被赋予了a/10后的余数,例如a=132,则执行a%=10前的所有a的值为132,执行a%=10后的所有a的值为2。
2024-09-13 20:12:52
186
原创 00004(时间转换,取余赋值)
*/ 错误,并没有达到精确到小数点后2两位的目的,因为强制转换符使s=(int)s%60的s先取整数再取余,所以小数点后数字省略。因为s本身是用float定义的,所以即使使用了强制转换符,用%.2f仍旧能够输出正常数字。时,这里的seconds已经是取余过后的一个新的数值(%=取余并赋值,a%=3600,a除以3600的余数并赋予a)}*/ 错误,floa,doublet定义的变量不能取余,因为它们定义的不是整数。
2024-09-13 14:27:16
257
原创 00003(条件操作符)
注意,,":"前的内容为真,“:”后的内容为假,判断内容若是成立,则赋予x“真”的值,反之则赋予x“假”的值,所以要正确输入:两边的字符。例如判断a>b,如果a>b成立,则x被赋予“真”处的值,即x=a,反之,则x=b。} 以上是条件操作符用来判断大小,格式为x=(判断方式?相较之下,第二种或许更为简单。
2024-09-12 22:09:17
253
原创 00003(移位操作符)
1*2^1+0*2^0=2)……1*2^2+0*2^1+0*2^0=4)int a=1(二进制,4个字节,32个bit位,31个0——1)int c=a<<2(29个0——100)int b=a<<1(30个0——10)printf(“%d”,a)<<左移操作符,>> 右移操作符。
2024-09-12 07:41:19
110
原创 00002(强制转换为浮点类型)
若a输入5,b输入2,输出结果c却等于2,这是因为int使a,b被定义为整数,在c=a/b的运算中,a,b被称为操作数,当两个操作数都为整数时,进行整数除法,小数被截断,例如:a输入10,b输入6,则输出c=1.000000(c被int定义为整数时则输出1).若是想让c=a/b正确实现数学的基本运算,则需要将两个操作数的其中一个强制转换类型(两个都转换对输出的c无影响,也能够实现数学的基本运算)。强制转换类型的语法是在转换对象(要转换的表达式?)前加上目标类型的括号,如上例(float)
2024-09-11 13:03:51
202
原创 00001
2.因为i++是后置递增运算符,所以输出的b值是i增加1之前的值,即b=i++=未运算的i值。若将int b=i++;改成int b=++i,输出的b值是:未运算的i值+1 即b=6。3.b赋值完毕后,后置递增,输出的i=未运算的i值+1。} 的输出结果是i=6, b=5。而输出的i值=未运算的i值+1。i++(后置递增运算符)新手小白,写着玩,当笔记。
2024-09-10 21:37:41
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人