字符串解析:
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)
{