- 博客(5)
- 收藏
- 关注
原创 c语言笔记_3
按道理来说,a和p[0]的类型是不匹配的,但是a是一号元素的地址,此时会进行隐式类型转换,变成int(*)[3],当把a赋值给p[0]时,a还会继续进行隐式类型转换,让a指向第一个3个int元素组的第一个元素的地址,这时就是让一个指针指向一个地址,类型就匹配了。()中的定义的变量不可在其{}外使用,比如i,如果定义在()内,那么{}外是无法使用的,定义在()外的话,在{}内更改值后,后面{}外的语句也可以使用,并且值是更改后的值。p是一个数组的首元素的地址,也是数组名,其中数组里有三个int型的指针变量。
2024-01-30 15:01:20 404 1
原创 c语言笔记_2
那么以此类推,64位机就是2^64个地址,是2^32乘以2^32,这个数值是很大的,理论上可以代表很多个存储单元,远超了现在的内存的容量大小。虽然p+1和*(p+1)的值一样,但p+1还在第一层,而*(p+1)在第二层,只不过因为第一层的地址和第二层的首地址一样而已。*和++的优先级相同,但它们是从右往左算的,先执行p++,不过p++会先将p的值给*,然后再执行p的自增。而*(p[0]+2),p[0]指的是{1,2,3}这个数组的首地址,已经进入了第二层,+2就成了3的地址。赋值的操作,就是在把p指向a。
2024-01-20 10:27:55 530
原创 c语言笔记_1
如果小于5,则不会进位,大于等于5,则加0.5后就进位了。如果是后面的小数,可先乘以对应位数再四舍五入,之后再除回来就可以了。比如,对第三位进行四舍五入,可先乘以100,然后加0.5,最后除100.0就行了。3.浮点类型:浮点数遵循IEEE 754标准,使用一种特殊的格式存储,这包括三个部分:符号位、指数部分和尾数部分。一个float是4,10个也就是40,可以看出,指的是数组的大小。这条语句从右往左算,第一步后,a=3,b=4,3x4=12。可以看出,声明数组后,a既是数组名,也是0号元素的地址。
2024-01-17 13:49:29 387
原创 c笔记_0
类型,意味着在对这段内存进行读取和写入操作时,会按照整数的方式来解析和处理这段内存。要清楚哪些量可改,哪些量不可改,比如函数的指针型参数,声明了一个指针出来,那么总是的用它的,如果整个程序中都没写让它指向某个地址,没有掌握指针的状态是一件很危险的事,使用指针时,野指针不一定会报错。%p是输出地址的值,如果以%d去输出&a的话,有可能会导致错误。2e3这样的指数,e后面只能是整数,e前面也不能不写值。因为指针就是地址,内存地址是多少位,指针就是多少位。这句声明会确定两个东西,内存大小,内存的分析方式。
2024-01-16 17:28:30 334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人