![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
C语言基础
fksfdh
这个作者很懒,什么都没留下…
展开
-
N叉树的遍历
N叉树的遍历的迭代和递归实现 1、先序遍历 //迭代 class Solution { public: vector<int> preorder(Node* root) { if(root == NULL) return vector<int>(); vector<int> res; stack<Node*> mystack; mystack.push(root); w原创 2022-03-07 16:02:44 · 373 阅读 · 0 评论 -
从103个数中找到出现一次的那三个数
1、从101个数中找到出现一次的那1个数? //101 void demo01() { int arr[5] = { 5,7,6,7,5 }; int result; result = 0; for (int i = 0; i < 5; i++) { result ^= arr[i]; } printf("出现一次的那个数=%d\n", result); } 2、从102个数中找到出现一次的那2个数? //101 int d原创 2021-03-08 18:49:51 · 234 阅读 · 0 评论 -
c语言之指针(四)
四、二级指针和指针数组 在这里插入代码片原创 2021-03-07 03:51:44 · 71 阅读 · 0 评论 -
c语言之指针(三)
三、数组指针和二维数组 在这里插入代码片原创 2021-03-07 03:50:34 · 69 阅读 · 0 评论 -
c语言之指针(二)
二、字符指针和字符数组 1、字符指针和字符数组的初始化问题 void demo01() { char *p = "hello"; char a[10] = "hello"; p[0] = 'H'; a[0] = 'H'; printf("p=%s,a=%s", p, a); } 结果:字符指针无法修改字符串,而数组a能成功修改值为“Hello”; 原因是: (1)执行p[0] = 'H'; 时报错; 写入访问权限冲突。 因为“hello”是作为字符串原创 2021-03-07 03:45:20 · 129 阅读 · 0 评论 -
c语言之指针(一)
1、指针 相当于间接访问数据; 指针变量大小为4字节; 2、值传递和引用传递 引用传递也是值传递,不过传递的是地址; 函数调用的本质是值传递; #include <stdio.h> //值传递 void demo01(int a) { a = 100; } //引用传递:传递地址 void demo02(int* b) { *b = 100; } int main() { int i; i = 10; printf("原始值:%d\n",原创 2021-03-05 21:49:21 · 72 阅读 · 0 评论 -
c语言之数组
1、数组的访问越界问题 //数组访问越界 int main() { int m = 10; int a[5] = {1,2,3,4,5}; a[5] = 6; a[6] = 7; a[7] = 8; int n = 100; printf("m=%d;n=%d\n", m,n); } 结果: 原因: 通过查看变量的内存地址: 由下图,可以看出变量在创建的时候是以高地址创建变量,并且windows有2字节的保护(cc cc cc c原创 2021-03-05 17:59:36 · 86 阅读 · 0 评论 -
C语言之位操作和整形的补位
位操作: 左移(<<)和右移(>>) 1、整数是以补码形式存储。 2、数据类型转换 小数据赋给大数据,系统为保证数据完整性,采用符号扩充行为, 大数据赋给小数据,会发生截断行为,有可能造成数据丢失。 下面显示的二进制数据也是补码。 3、整数运算时低于4字节的整数类型,是以四个字节运算的。 eg: void Demo() { char i; i = 93 << 1; printf("左移:%d\n",i); i = i >> 1; printf("右移原创 2021-03-04 23:12:11 · 1673 阅读 · 2 评论