2023_07_28课堂笔记及课后知识总结

课堂笔记

  1. 生成随机数函数:rand(void),返回值为0~32767,头文件是<stdlib.h>;
  2. rand()函数的初始值由函数srand(unsigned int seed)决定,此函数无返回值,就可改变rand()的初始值;
  3. time_t time(time_t*time)函数可以实时获取此时与1970年1月1日0时0分0秒之间的时间差(单位:秒),返回值是int或者long long类型,可以传灿空指针(NULL);
  4. 把time(NULL)函数的返回值先强制类型转换成unsigned然后传参给srand()去随机初始化rand()函数的初始值,这样形成的随机值才是真的随机值;
  5. 数组创建时必须初始化,数组初始化要么指定数组元素个数[10],要么存入若干个元素{1,2,3,4);
  6. 数组本质上是一种自定义类型,类型由数组元素类型和元素个数决定,例:int arr[10]的类型是int [10];
  7. 数组元素在内存中的存储是连续存储的,且是随着下标增长由低地址到高地址存储的;
  8. 求数组元素个数的方法:sizeof(arr)/sizeof(arr[0]);
  9. sizeof的几种写法:sizeof(int),siofze(a),sizeof(arr),sizeof a,sizeof arr,此函数的返回值是size_t类型,此类型是unsigned int类型或者unsigned long long类型;
  10. 字符串数组的长度不含’\0’,用strlen()函数求,但是sizeof()函数求出来的字符串数组元素个数含’\0’;
  11. 变长数组:元素个数可以用变量,但是元素值不能初始化;
  12. Sleep()函数:休眠函数,传参毫秒,system(“cls”):清屏函数,以上函数头文件:<windows.h>;

课后总结:

  • sizeof()和strlen()的区别:
  • Sizeof()是计算符,strlen()是函数,头文件是<string.h>;
  • Sizeof可以用变量,数组,类型做参数,strlen只能用char*做参数;
  • 数组做sizeof参数不退化,而传递给strlen则退化成指针;
  • Strlen结果是运行时候才能计算出来,而且计算出来的是字符串的长度不是内村的大小;
  • 当使用的是结构体或者变量时,sizeof返回的是实际的大小,静态空间数组则返回数组的尺寸;
  • sizeof不能返回动态分配的数组或者外部数组的尺寸
  • strlen()计算的是数组的长度,遇到’\0’就结束计算,不包括’\0’,sizeof()计算的是变量或者数组占的内存,其中计算数组时,由每个元素的占用内存乘以元素个数,包括’\0’,

- 例1:

  • char str[] = “hello\n\0\n”,则strlen(str)值是6. 因为strlen遇见\0结束符则结束所以值是6,sizeof(str)值是9;

例2:

char str1[]= “Hello” ;
char str2[5] = {'H','e','l','l','o'};
char str3[6] = {'H','e','l','l','o','/0'};
char *p1 = "Hello";
char *p2[]={"hello","world"};
int n = 10;
int *q = &n;
  • sizeof (str1 ) = 6 (自动加了’/0’);
  • strlen (str1 ) = 5 (字符串的长度);
  • sizeof (str2 ) = 5 (字符数组的大小);
  • strlen (str2) = 未知 (该字符串缺少结束符’/0’);
  • sizeof (str3) = 6 (字符数组的大小);
  • strlen (str3) = 5 (该字符串的长度为5);
  • sizeof ( p1 ) = 4 (p1是一个指针,大小为4);
  • sizeof ( p2 ) = 8 (p2是长度为2的字符串数组);
  • sizeof ( n ) = 4 (整型大小为4);
  • sizeof ( q ) = 4 (q是一个指针,大小为4);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值