今天使用strlen时 ,发现一个问题,demo代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { ]; printf("len = %d\n", strlen(a)); ; } 运行后,发现结果,有点蹊跷,有时候是0,有时候是6. strlen在计算数组长度的时候是遇到‘\0’时计算就停止. 如果不在字符数组后面加上‘\0’,那么strlen就会…
看csapp时候,看一下char*[8],以为char*也是一字节,但是指针是地址,64位编译器下是8字节,所以sizeof(B)是64字节 后来又看strlen(). #include"stdio.h" #include"string.h" int main(void){ ]; printf("%d",strlen(B)); ; } 运行后,发现结果,有点蹊跷,有时候是0,有时候是6. strlen在计算数组长度的时候是遇到‘\0’时计算就停止…
13.10 Write a function in C called my2DAlloc which allocates a two-dimensional array. Minimize the number of calls to malloc and make sure that the memory is accessible by the notation arr[i][j]. 这道题让我们写个C语言函数my2DAlloc用来给一个二维数组分配内存,并且让我们尽可能的少调用malloc…
一个指针可以被声明为void类型,比如void *x.一个指针可以被赋值为NULL.一个指针变量声明之后但没有被赋值,叫做未初始化指针. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 int *uninit; // int指针未初始化 int *nullptr = NULL; // 初始化为NULL void *vptr; // void指针未初始化 int val = 1; int *iptr; int *castptr…
在 C++ 中分配一个未初始化内存,然后读取它,会读取到这块内存之前被使用所留下的值,这种现象我称之为 flashback. 栈内存很容易出现这种现象,而且很容易观测出某种规律. for (int i = 0; i < 10; ++i) { int a; std::cout << a << " "; a = i; } 这段代码可能输出 0 0 1 2 3 4 5 6 7 8 除了第一个 0,其余的 0 1 2 3 4 5 6 7 8 都是 flashbac…
突然想起来前几天同学问我为什么没有初始化的数组的值是随机的,发现这个困惑自己也是存在的,所以自己总结的心得. 1. 首先,并不是所有未初始化的数组的值都是随机的.对于没有初始化的数组,分两种情况: (1)全局数组,也就是定义在main函数外面的数组,元素的默认值是全部为0的 (2)局部数组,定义在函数内部的数组,其值默认是随机的. #include <stdio.h> #define LENGTH 5 int a[LENGTH]; int main() { ;i<LENGTH;i++){…
1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 112[Submit][Status][Web Board] Description 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. Input 一个3x3的矩阵 Output 转置后的矩阵 Sample Input 1 2 3 4 5 6 7 8 9 Sample Output 1 4 7…
对于数组的初始化有一下三种方式: int  a[]={1,2,3,4,5} //通过判断初始化值得个数来却仍数组长度 int b[5]={1,2,3} //数组长度为5,可是初始值却只有三个,因此,不足的初始值需要使用么人值初始化,即b[0]=1,b[2]=3,b[3]=b[4]=0; int c[5]={0};//这个效果是数组所有元素值都初始化为0了,可是并不是这样写就是全部初始化为相同的给定值,之所以会全部为0是因为,数组长度为5,却只提供一个初始值,因此后面四个元素要用默认值来初始化,对…
转自c++ 如何批量初始化数组 fill和fill_n函数的应用 std::fill(a+,a+,0x3f3f3f3f);///从下标2到下标10 前闭后开 共8个 std::fill_n(a+,,0x3f3f3f3f);///从下标2 开始 填充10个 memset(a,0x7f7f7f7f,sizeof(a)); 一. fill和fill_n函数的应用: fill函数的作用是:将一个区间的元素都赋予val值. 函数参数:fill(first,last,val);//first为容器的首迭代器…
从C过渡到C++--换一个视角深入数组[初始化](1) 目录 从C过渡到C++--换一个视角深入数组[初始化](1) 数组的初始化 从C入手 作用域 代码块作用域 文件作用域 原型作用域 函数作用域 链接属性 改变链接属性的关键字 static external 特别注意 存储类型 静态变量 自动变量 寄存器变量 改变变量存储类型的关键字 static 变量的初始化与static的联系 总结 结论 一点补充 数组的初始化 我一直很迷惑一个问题,就是到底在哪些地方的进行数组的初始化可以直接将数组的…