![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
微笠谁与归
这个作者很懒,什么都没留下…
展开
-
c++:全局作用域和块作用域,外层作用域和内层作用域
1.外层作用域中定义的变量在内层作用域中仍然可以使用2.内层作用域中定义的变量在外层作用域中不能使用3.在内层作用域中可以对外层作用域重新定义注意:重新定义是定义了一个新的只属于这个内层作用域的变量(名字可以不变),原本的那个外层作用域中的变量未受到影响,这个新定义的内层作用域里的变量只能在这个内层作用域中使用。(可以通过::来在内层作用域中使用全局作用域中的变量)4.在内层作用域中可以对外层作用域中的变量更改(非重新定义)注意:在这种情况下,内层作用域并未新定义一个变量,而是对原本外层作用域中原创 2021-03-27 20:44:44 · 1166 阅读 · 0 评论 -
自己遇到的小问题集锦
1.尽量不要在for循环中声明变量(除非这个变量只在这个循环中使用),因为for循环中声明的这个变量只是属于这个循环的一个局部变量,在其他位置都无法使用。原创 2021-02-03 10:51:35 · 115 阅读 · 0 评论 -
ar[]到底是数组还是指针?
一、如果是直接声明int ar[],则表示的是一个数组。且这个数组的大小由后面大括号中元素的数量来定。(必须声明时初始化,否则会报错)二、如果是在函数形参中声明int ar[],则表示的是一个指针,此时与int *ar 是完全相同的,只不过前者强调这个指针将指向数组。...原创 2020-12-11 20:03:01 · 451 阅读 · 1 评论 -
菜鸡本鸡的新问题
今天,笔者在学习字符串时,在字符串的初始化和赋值上发现了新问题,那就是如果对字符数组的整体赋值,必须也只能在初始化时就对其赋值。而如果要在初始化之后再对其进行赋值,就不能对字符数组的整体赋值,只能对字符数组的各个元素一个挨着一个的赋值。情况如图。至此,问题解决。(当然,如果是在初始化之后,通过fgets()等输入函数来填充字符数组的话还是没有问题的)...原创 2020-12-09 21:04:29 · 161 阅读 · 0 评论 -
深究指针表示法在数组中的应用
不说废话,直接入题。先来看看正确的指针表示法的使用方法。1.对于一维数组,想用正常的指针表示法,就必须让指针指向数组的首元素。对于多维数组,也是这样,只不过指针指向的是首个数组。再来看看错误的指针表示法会发生什么情况。1.在一维数组中,指针指向的不是首元素而是其他元素。在这种情况下,ar[0]是指向的位置的那个元素,ar[1]是指向的那个位置的下一个位置的元素,以此类推。2.在多维数组中(以二维数组为例),指针指向的是数组,但不是首个数组。此时与1.中的情况类似,ar[0][0]表示的是第二个原创 2020-12-04 21:05:03 · 367 阅读 · 0 评论 -
C语言中关于数组和指针的tips
大家知道,数组名字可以表示数组首元素的位置。现在声明一个指针ar,两个数组file,两个整形变量a,b。ar++正确,file++错误,a++正确,ar=file+1错误。这是为什么呢?因为我们忽略了一个本质。那就是a++实际上是a=a+1。ar的指向可以改变,所以正确。但是数组名字表示数组首元素的位置是固定的,不能被改变,所以错误。a++会改变a的值,但是b=a+1并不会改变a的值。...原创 2020-11-23 20:39:13 · 101 阅读 · 0 评论 -
语句tips
整个循环语句,如for循环,都会被看做是一条语句。整个if语句也是被看作成一条语句原创 2020-11-14 20:55:08 · 77 阅读 · 0 评论 -
强制转换tips
1.(float)a/b是把a强制转换成浮点数,但在计算过程中b会自定转化成浮点数(float)(a/b)是把(a/b)这个整体强制转换成浮点数所以,需要注意括号的用途原创 2020-11-14 20:25:30 · 179 阅读 · 0 评论 -
计算各声明类型能表示的数的范围的方法
要想解决这个问题,首先需要知道该声明的位数。众所周知,计算机使用二进制来存储。每个位就是0或1。位的数量即2进制的最大位数,在二进制数中每个位都设置为1,最后计算得来一个十进制的数(奇数)如果是无符号类型,表示的范围就是0~这个数如果是有符号类型,先用这个数减去1,再除以2,得到的结果假设为a,表示的范围就是负(a+1)~a...原创 2020-11-14 19:22:32 · 140 阅读 · 0 评论 -
浮点数
3是整数,3.0才是浮点数。浮点数的特征之一就是小数点。原创 2020-11-14 10:45:01 · 364 阅读 · 0 评论 -
C语言中的四舍五入和截断
长期更新,如果发现新的情况就会更新四舍五入的情况:1.用转换说明修饰符保留多少位时,如%.2f。截断的情况:1.将浮点型转化为整型时,小数点后面的会直接被截断,就算是0.9也会变成0。原创 2020-11-14 09:59:32 · 1720 阅读 · 0 评论 -
八进制,十六进制和浮点数
在c语言中,八进制,十六进制的全称是八进制整数和十六进制整数。所以虽然在数学中存在01.1,0x1.1的写法,但在c语言中是不可以的。(从百度中总结得来)只有整数可以用八进制,十六进制表示,浮点数不可以但是c99标准新增添了一种可以用十六进制表示浮点数的p计数法。如0xa.1fp10。p后的数代表2的多少次幂(即指数)。p前的数代表底数。于是该数表示为0xa.1f乘以2的10次幂(并非所有的编译器都支持c99的这一特性)...原创 2020-11-14 09:32:58 · 1974 阅读 · 0 评论 -
如果全局变量,局部变量未初始化,会发生什么
对于全局变量,如果未初始化,值就是0。对于局部变量,如果未初始化,值就是-858993460原创 2020-11-13 20:19:09 · 833 阅读 · 0 评论 -
关于输入函数和缓冲区的思考,实践与总结
笔者是一名c语言初学者。在学习《c primer plus》时关于getchar()和缓冲区产生了疑惑。疑惑点在于是否每次执行getchar()时都要从用户处获取一次内容,倘若是这样的话,那么它是从用户输入中获取第一个字符,还是从缓冲区中呢?因此,笔者对于此疑惑进行了实验,解答了心中的疑惑。1.当缓冲区中没有内容时,getchar()会要求用户输入内容(输入的内容存放在缓冲区中),并从缓冲区中读取第一个字符。然后缓冲区中的剩余的内容并未被getchar()获取,仍然留在缓冲区中(包括换行符)2.当缓原创 2020-11-08 09:50:43 · 256 阅读 · 1 评论