struct和strlen的相关问题总结--个人盲点的分析及理解

/*  strlen使用方法及注意事项*/

#include <stdio.h>

#include <stdlib.h> 

int main()
{
  char name1[] = "itcast";                                 //栈:先入后出,程序从main开始走,变量name1[]、name[]依次入栈并分配存储空间
  char name[] = {'0','6'};

  int size = strlen(name);                                  //strlen计算字符串以'\0'字符作为结束标识, 而在name这个数组中没有\0表示符

                                                                        //所以该语句中strlen会在栈中依次找到有'\0'结束标识
  printf("size=%d\nname=%s",size,name);      //结果是size = 8,naem = 06itcast;      
  while(1);
  return 0;
}



/*struct定义及使用,及结构体的对齐算法*/

#include <stdio.h>

int main()
{
  struct Person
  {
         int age;          //占4个字节
         int height;       //占4个字节
         char c;           //占1个字节
         char *p;          //占4个字节
                           //char *p 其实变量是p,p是一个地址,我电脑是32位的故p占4个字节,这里有点难理解
                           //*p指向的是一个字符类型的值,但是我们这里针对的是变量的存储空间,而不是*p
         };                //所以按道理,总字节为13,但是结构体所占用的空间必须是最大成员字节数的整数倍
  struct Person per;
  per.p = "jack";
 
 
  printf("%d",sizeof(per));   //输出结果是16
  while(1);
  return 0;
 
 
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值