C语言
rens111
这个作者很懒,什么都没留下…
展开
-
for循环与while循环的区别示例
实现输出从10 到0的数字,变量要求是无符号。1. 使用for循环实现:输出会出错,因为i从0减去1时候变成最大值,代码死循环;#include <iostream>using namespace std;int main(){ for (unsigned i = 10; i >= 0; i--) cout << i << endl; return 0;}2. 使用for循环实现:代码成功输出;#include <iostr原创 2020-12-30 16:41:15 · 979 阅读 · 0 评论 -
随机函数生成器(rand5()与rand7()的转化)
一、C语言中随机函数rand() 和 srand()1) rand函数和srand函数介绍随机函数rand() 会随机生成一个位于0-RAND_MAX之间的整数;#include <stdio.h>#include <stdlib.h>int main(){ for (int i = 0; i < 10; i++) printf("%d ", rand()); printf("\n"); return 0;}使用rand()函数的缺点是, 对于同原创 2020-07-03 15:30:35 · 907 阅读 · 0 评论 -
使用malloc在堆上动态申请二维数组的三种方法
一、利用二级指针申请一个二维数组每一行的地址都是连续的,但是行与行之间的地址不连续,所有行的首地址都存放在一级指针上;int main(){ int m = 4, n = 3; int** arr = (int**)malloc(sizeof(int*) * m); for (int i = 0; i < m; i++) arr[i] = (int*)malloc(sizeof(int) * n); for (int i = 0; i < m; i++) free(arr原创 2020-07-03 09:31:24 · 545 阅读 · 0 评论 -
二维数组的初始化
在使用二维数组arr的时候,如果二维数组没有初始化, 进行下标运算的时候,很容易内存泄漏;在C语言中对二维数组进行初始化int n = 6;int arr[n][n]; //这样初始化不可以,语法错误#define N 6int arr[N]; //这样初始化可以,但是N的值不能随输入变化而变化//使用堆分配二维数组int n = 10;int **arr = (int **)malloc(sizeof(int *) * n);for(int i = 0; i < n; i++)原创 2020-05-26 20:04:35 · 683 阅读 · 0 评论 -
C语言中数组长度的计算详解
1) C语言中计算数组长度大小C语言字符串长度的计算可以使用strlen(str); 但是对于数组长度的大小却没有相关函数可以使用;C语言数组长度的大小可以使用:int main(){ int arr[] = {1,2,3,4,5}; int length = sizeof(arr)/sizeof(int); printf("the length of arr is %d\n", length);}2) 在函数调用中计算数组的长度上述计算数组长度的方法在函数调用中不可使用,有bug;原创 2020-05-23 18:23:01 · 42477 阅读 · 0 评论 -
extern关键字用法
extern关键字的作用:1) extern关键字放在变量或是函数前面,告诉编译器变量或是函数定义在别的文件中,让编译器遇到此变量名字的时候从其他的文件中寻找;2) extern关键字可以用来进行链接指定;使用extern关键字修饰数组时候应当注意:首先, 区分数组首地址和数组名字的不同;char a[6]; 和 char *a; 前一个a是数组变量,后一个a是字符指针变量;两者是不同的,只是编译器有时候在某些地方将两者看作一样;如有在文件A中定义: char a[6]; //a是一个字符数组类原创 2020-05-11 12:49:46 · 999 阅读 · 0 评论