栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言出识

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言出识

目录

<1>.关键字typedef

<2>.关键字static

<3>.#define

<4>.指针

<5>.结构体

1.typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名 简单地说就是将数据类型名称改成自己想用的名字 代码: #include typedef unsigned int u_int ;    / / 将 unsigned int 重命名为 u_int, 所以 u_int 也是一个类型名 int main() { //unsigned int 无符号整型 unsigned int num=100; u_int  num1=200; return 0; }

2.static

static----静态变量

static的3个作用: 1. 修饰局部变量 - 称为静态局部变量 2. 修饰全局变量 - 称为静态全局变量 3. 修饰函数 - 称为静态函数

<1>..修饰局部变量

代码1:

#include

void test()

{

int a=1;//a为局部变量

a++;

printf("%d",a);

}

int main()

{

int i=0;

while(i<10)

{

test();

i++;

}

return 0;

}

运行结果:

 

结果分析: 连续输出了10个2          原因:局部变量经过一个生命周期后会被销毁,等到进入下一个生命周期时,会重新开辟一个内存来存放局部变量,上一生命周期局部变量的值没有保存 代码2: // void 在这里表示不需要函数返回任何值 void test() {  //a本来是局部变量的  //使用static修饰局部变量 static int a = 1;  a++; printf("%d ", a); } int main() {  int i = 0; while (i < 10)  {  test();  i++; } return 0; } 运行结果:

 

 

 

<2>. 修饰全局变量 如果想使用来自其他文件(外部文件)的 全局变量,先要声明一下 extern是一个关键字,是专门用来声明外部符号的

 

 

全局变量前面加了static后

 分析:

 

<3>.修饰函数

没用static修饰前

 分析:

 加了static后

 

3. #define 定义常量和宏 <1> #define 定义标识符常量 #include #define M 100 #define STR "hehe" int main() {  printf("%dn", M);  printf("%sn", STR);  return 0; } <2> #define 定义宏 #include #define ADD(x,y)    ((x)+(y))  //宏的定义 int main() { int a=10; int b=20; i nt sum=ADD(a,b); printf("%d",sum); return 0; }

 

4. 指针 说到指针就必须提到内存 <1>内存 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是 1 个字节 。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该 内存单元的地 址 。 <2> 变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。 如何取出变量的地址 #include int main() { int a = 10; &a; //取出a的地址 //注:这里a的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址) printf("%p",&a); // 打印地址, %p 是以地址的形式打印 return 0; }

 

那地址如何存储,需要定义指针变量。 int num = 10 ; int * p  = & num ; ; //p 为一个整形指针变量  指针变量用来存储地址 指针的使用实例: #include //& - 取地址操作符 //* - 解引用操作符/间接访问操作符 int main () { int num = 10 ; int * p = & num ; //p是用来存放地址的,所以我们把p称为指针变量 * p = 20 ; //*的解引用操作符,*p的意思就是通过p中的值,找到p所指向的对象,也就是说*p就是num     return 0 ; } <3> 指针变量的大小 指针大小在 32 位平台是 4 个字节, 64 位平台是 8 个字节。 #include // 指针变量的大小取决于地址的大小 //32 位平台下地址是 32 个 bit 位(即 4 个字节) //64 位平台下地址是 64 个 bit 位(即 8 个字节) int main () {     printf ( "%dn" , sizeof ( char * ));     printf ( "%dn" , sizeof ( short * ));     printf ( "%dn" , sizeof ( int * ));     printf ( "%dn" , sizeof ( double * ));     return 0 ; } 在32平太上

 

在64平台

 

5. 结构体 结构体是 C 语言中特别重要的知识点,结构体使得 C 语言有能力描述复杂类型。 比如描述学生,学生包含: 名字 + 年龄 + 性别 + 学号 这几项信息。 这里只能使用结构体来描述了 <1>介绍两个操作符 . 结构体成员访问的操作符 用法:结构体变量.结构体成员 -> 结构体成员访问的操作符 用法:结构体指针->结构体成员 //结构体类型的定义 struct Stu {  //结构体的成员  char name[20];  int age;  char sex[10]; } ; #include int main() { //创建结构体变量,并且初始化  struct Stu zhangsan = {"张三", 30, "男"};  struct Stu lisi = {"李四", 24, "保密"}; //打印结构体的数据 printf("%s %d %sn", zhangsan.name, zhangsan.age, zhangsan.sex); printf("%s %d %sn", lisi.name, lisi.age, lisi.sex);  //->这个操作符 struct Stu * pl = &lisi;  printf("%s %d %sn", (*pl).name, (*pl).age, (*pl).sex);  printf("%s %d %sn", pl->name, pl->age, pl->sex); return 0; }

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353170.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号