C语言数组结构体共用体杂记

1.计算数组元素个数:数组内的元素个数=数组整体大小/数组类型大小,Eg. sizeof(a)/sizeof(a[0]);
2.scanf中合法分隔符:空格,回车,TAB键
3.printf打印地址:%p,Eg. printf(“%p\n”,&a[i]);
4.“*”取值,“&”取地址

  1. 一维数组:*(a+i)=a[ i ];
  2. 二维数组:* ((a+i)+j)=a[ i ][ j ];(行地址到列地址的转换必须加一个 操作,这里的(a+i)的“ ”就是这个用处)
  3. 多维数组:以此类推

5.数组名是常量,不能被赋值改变!
6.在数组初始化中,如果给部分位置初始化赋值,其它位置自动置为0
7.在字符型数组中,printf不能打印带有空格的字符串
8.与字符数组有关的函数

  1. strlen:计算字符串个数,但不包括“\0”(用sizeof来计算的话是包括“\0”的)
  2. strcpy:复制字符串 (目的串,源串)
  3. strcat:连接两个字符串(会自动补上“\0”)
  4. strcmp:比较两个字符串

9.结构体:

  • struct 结构体名{
    • 数据类型 成员1;
    • 数据类型 成员2;
    • ……
  • };
  • Eg.
  • struct A{
    • int i;
    • float f;
    • char ch;
  • };
  • 共占用12字节,其中char类型自动补齐为4字节,但是实际上只用了1字节,另外3字节闲置

10.共同体

  • union 共同体名{
    • 数据类型 成员1;
    • 数据类型 成员2;
    • ……
  • };
  • Eg.
  • union A{
    • int i;
    • float f;
    • char ch;
  • };
  • 共占用4字节,由最大占空间的那个数据类型决定,上面三个变量中同一时刻只能有一者存在

11.共用体不常单独使用,经常和结构体嵌套使用

  • Eg.位相加
  • union {
    • struct {
      • unsigned short high;
      • unsigned short low;
    • } x;
    • unsigned int y;
  • } num;

结构体的引用:

  • 变量名.成员名
  • 指针名->成员名 or *(指针名).成员名
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值