![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
harkecho
这个作者很懒,什么都没留下…
展开
-
const int*, int const *以及int* const的区别
指向常量的指针(const int * 和 int const *)两者的作用是一样的,都是一个指向常量的指针。可以不用先初始化,即指针没有指向任何内容。指针指向的内容是一个常量(即地址),可以通过改变常量(地址)中的值来改变指针解引用的值。但是不能直接解引用指针来改变值因为这里的指针是一个常量。也可以将另外一个常量赋值给指针,来改变指针所指向内容的值。1 可以先不用初始化(这里就是和int * const 的不同,常量指针必须初始化,之后所指向的内容就不能改变)#include原创 2020-06-04 19:22:36 · 286 阅读 · 0 评论 -
volatile的理解
C语言中MMIO的例子在这里例子中,代码将foo的值设置为0。然后开始不断地轮询它的值直到它变成255:static int foo; void change() { foo = 0; while(foo != 255); }一个执行优化的编译器会提示没有代码能修改foo的值,并假设它永远都只会是0.因此编译器将用类似下列的无限循环替换函数体编译器会优化为static int foo;void change() { foo = 0; while(true);}但是,foo原创 2020-06-04 17:15:10 · 94 阅读 · 0 评论 -
负数的二进制
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。现在想知道,-5在计算机中如何表示?在计算机中,负数以其正值的补码形式表达什么叫补码呢?这得从原码,反码说起。原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。比如 00000000 00000000 00000000 00000101 是 5的 原码。反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)比如:将00000000 0原创 2020-06-04 05:00:40 · 683 阅读 · 0 评论 -
总结:如何优雅的写出链表代码?6大学习技巧
一 、理解指针或引用的含义1.含义:将某个变量(对象)赋值给指针(引用),实际上就是就是将这个变量(对象)的地址赋值给指针(引用)。2.示例:p—>next = q; \\表示p节点的后继指针存储了q节点的内存地址。p—>next = p—>next—>next; \\表示p节点的后继指针存储了p节点的下下个节点的内存地址。二、警惕指针丢失和内存泄漏(单...原创 2020-04-30 20:30:16 · 202 阅读 · 0 评论 -
字符与数字
字符包括字母、数字、运算符号、标点符号和其他符号对应ASCII控制字符,和显示字符int main(int argc, const char * argv[]) { char c1 = '1'; printf("字符打印 c1 = %c\n", c1); printf("数值打印 c1 = %d\n", c1); char c2 = 49; ...原创 2020-04-30 19:48:02 · 1449 阅读 · 0 评论 -
从 lvalue到rvalue来分析i++与++i的区别
在代码中看到for循环体中用到的++i,和i++没什么区别在程序开发中,++i 与 i++的区别在哪里?为什么(i++)不能做左值,而(++i)可以// for (int i = 0; i < array.length; i++){} 和for (int i = 0; i < array.length; ++i){},他们在执行体内打印i的值都是相同的如下图所示 for (i...原创 2020-04-30 09:37:12 · 266 阅读 · 0 评论 -
C语言指针的声明
下面将以变量名p对声明中用到的符号进行解释1,当p与符号[ ]结合时(结合在p的右边),符号[ ]的作用就是声明变量p是一个数组类型.[ ]里面的数字决定了数组中元素的个数,如int p[5]; // 声明变量p是一个整型数组,数组中有5个元素2.当p与符号( )结合时(结合在p的右边),符号( )的作用就是声明p是一个函数通过p()可以调用该函数,( )中可以有参数列表或者无参数列表,如...原创 2019-03-06 09:56:43 · 1699 阅读 · 0 评论 -
C/C++中的二维数组与指针
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};cout<<a+1<<endl;cout<<&a[1]<<endl;cout<<a[1]<<endl;cout<<*(a+1)<<endl;cout<<原创 2019-03-09 10:19:15 · 249 阅读 · 0 评论