C语言struct

#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#include<errno.h>
#include<ctype.h>
#define _CRT_SECURE_NO_WARNINGS 1
void* my_memcopy(void* dest,void* str, size_t num);
struct
{
	char a

}a;//匿名名结构体
struct Node
{
	int data;
	//struct Node n;//错误的写法
	struct Node* next;

}Node;
int main()
{
	char arr[] = "I AM SS";
	int i = 0;
	while (arr[i])
	{
		if (isupper(arr[i]))
		{
			arr[i]= tolower(arr[i]);

		}
		i++;
	}
	printf("%s", arr);
	return 0;
	/*char arr[] = "sdad@dasdsa.cc";
	const char* p = "@.";
	char* ret = NULL;
	for ( ret = strtok(arr,p); ret !=NULL; ret=strtok(NULL,p))
	{
		printf("%s", ret); 
	}
	return 0;*/
	//char* str = strerror(errno);
	/*FILE* pf = fopen("t1.txt", "r");
	if (pf==NULL)
	{
		printf("%s", strerror(errno));

	}
	else
	{
		printf("yes");
	}*/

}
//NULL  空指针
//Null \0
//strtok分割函数
//memcpy memmove处理重叠
void* my_memcopy(void* dest, void* str, size_t num)
{
	void* ret = dest;
	assert(dest != NULL);
	while (num--)
	{
		*(char*)dest = *(char*)str;
		++(char*)dest;
		++(char*)str;

	}
	return ret;


}
//结构体大小
//结构体内存计算
//低碳钢成员相当于偏移量0地址处
//对齐某个数字的整数倍
//结构体大小为最大对齐数的整数倍
//对齐原因
//平台原因 某些硬件读取特定位置
//空寂那换时间  内存访问一次
//#pragma pack()设置对齐数
//offsetof(struct s, i)设置偏移量
#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#include<errno.h>
#include<ctype.h>
#define _CRT_SECURE_NO_WARNINGS 1
struct Stu
{
	char name;

};
struct Stu1
{
	int a :10;

};
//传值
void printf1(struct  Stu t);
//传址
void init(struct  Stu* ps);

int main()
{
	struct Stu s = { 0 };
	init(&s);
	printf1(s);
	return 0;
}
void init(struct  Stu *ps)
{
	ps->name = 'x';

}
void printf1(struct  Stu t)
{
	printf("%c", t.name);
}
//位段
//节约空间
//不能跨平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值