字符串+sizeof/strlen+typedef+结构体对齐访问(全面解析)

本文详细介绍了C语言中字符串的工作原理,包括如何通过指针表示字符串,以及字符串与字符数组的区别。同时,讲解了sizeof和strlen的区别,前者返回变量所占内存大小,后者返回字符串长度。接着,探讨了typedef在类型定义中的作用,并深入讨论了结构体的对齐访问规则,包括默认对齐方式和自定义对齐方法。
摘要由CSDN通过智能技术生成

字符串解析:
C语言中没有原生字符串类型,定义字符串时可以通过字符串指针来间接实现。char *p=“linux”,此时p就代表一个字符串。
字符串在内存中是多个字节连续分布的。
在C语言中用一个指针指向字符串头;以’\0’结尾;中间的有效字符连续连接。
存储多个字符的两种方式:字符串和字符数组
字符数组自身有内存可以出字符,字符串一定需要额外的内存来存字符,字符串本身只存真正的那些字符所在内存空间的首地址。
sizeof/strlen解析:
sizeof是一个运算符(关键字),无原型;
strlen的原型:size_t strlen(const char *s);
sizeof(类型或变量名),用来返回一个类型或变量所占内存的字节数。
strlen(一个字符串的指针),用来返回字符串的长度(用字节表示,不包括’\0’)。
char *p=“linux”; sizeof( p )=4; strlen( p )=5;
typedef:
举例说明:

typedef struct teacher
{
   
	char name[10];
	int age;
}T1;

代码释义:将类型strutc teacher重命名为T1,T1是一个类型名不是变量。

struct teacher
{
   
	char name[10];
	int age;
}T1;

代码释义:T1是一个变量,类型为strutc teacher。
结构体的对齐访问:

struct teacher
{
   
	char name[10];
	int age;
	int *p;
}T1,*T2;

C语言中用结构体变量来访问元素用.;T1.name=“he”
用结构体变量的指针来访问元素有->; T2->p
用指针访问结构体变量代码说明:

#include <stdio.h>
struct s
{
   
	char c;			// 1  c实际占4字节,而不是1字节
	int b;			// 4
};
int main(void)
{
   
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值