C语言概述(三)-- 宏定义、指针、结构体

C语言概述(三)-- 宏定义、指针、结构体,第1张

C语言概述(三)-- 宏定义、指针、结构体
  1. 宏定义
  2. 指针
  3. 结构体

1、宏定义
     #define
     每个参数加上括号,结果也加上括号
     否则,可能会因为运算的优先级问题导致结果错误

#define ADD(a,b) ((a)+(b))
#define MUL(a,b) ((a)*(b))
void main()
{
	//如果宏定义去掉括号运算结果就可能会出错
	int add = ADD(1, 2) * ADD(3, 4);
	int mul = MUL(1 + 2, 3 + 4);
	printf("%dn", add); //21
	printf("%dn", mul); //21
	return 0;
}

2、指针
     内存: 
     内存是电脑上特别重要的存储器,计算机中所有的程序都是在内存中运行的;
     为了有效的使用内存,把内存划分成为一个个小的内存单元,每个单元为1个字节;
     为每个内存单元进行编号,这些编号称之为内存单元的地址。
    
     每个变量都会有其地址:
     举例:

void main()
{
	int i = 1; //int变量有4个字节,指针只存储首地址
	int* p = &i; //p指针变量 = 指针数据;存储地址的变量

	printf("%pn", p);
	printf("%pn", &i);

	*p = 20;
	printf("%dn", i); //2

	//指针变量大小都为4个字节(在32位平台中)
	printf("%dn", sizeof(int*));
	printf("%dn", sizeof(float*));
	printf("%dn", sizeof(char*));
	printf("%dn", sizeof(long*));
	printf("%dn", sizeof(short*));
	printf("%dn", sizeof(double*));
	return 0;
}

    指针大小:
        32位平台为4字节
        64位平台为8字节

3、结构体
     C语言的类型除了前面提到的基本数据类型外,还有结构体;
     结构体是的C语言有能力描述复杂类型
    
     举例:

struct Student //定义了一个学生结构体
{
    char name[10];
    int age;
};

void main()
{
	//第一种方式
	struct Student stu1 = { "hello", 20 };
	printf("name = %s, age = %dn", stu1.name, stu1.age);

	//第二种方式
	struct Student stu2;
	stu2.age = 21;
	strcpy(stu2.name, "world");
	printf("name = %s, age = %dn", stu2.name, stu2.age);
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5432718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存