C语言概述(二)


前言

一:指针
二:结构体
三:bool类型
四:关系表达式/逻辑表达式
五:关键字


一、指针

内存以8位二进制划分为存储单元,为了有效访问每个存储单元,就给内存存储单元进行了编号,这些编号,被称为内存存储单元的地址。-------在C语言中就称为指针

一个存储单元 => 1个字节 => 8位二进制(bit)=> 2位十六进制

打印变量的地址

int main ()
{
  int a = 10;
  printf("0X%08X",&a);//0X代表十六进制,8代表宽度为8位,%X打印的是地址,也可用 %p 直接打印
  return 0;
}

若以X64位系统打印,显示的是十六位的十六进制
若以X86位系统打印,显示的是八位的十六进制

int p----整型变量
int * p----指针变量,二者类型不同,其中 * 起声明作用
若 a = 100;
p = &a;
则 *p = 100, p <=> a ,其中p 起指向作用

小端存储:数据的低字节存储在低地址中,高字节存储在高地址中
大端存储:与小端存放相反

指针的操纵:操纵指针的自身,操纵指针的指向
指针的大小:
在X86系统下,都为4字节
在x64系统下,都为8字节
只存放首地址,低地址作为首地址

二、结构体

结构体:结构体是一种数据类型(由程序开发者自己设计的类型)
数组和结构体都属于聚合类型

struct Student
{
   char s_id [10];
   char s_name [20];
   char s_sex [5];
   int s_age;
}
int main ()
{
   int a = 10;
   struct Student s1 = {"09001","yhping","man",23};
   printf("%s",s1_id);
    printf("%s",s1_name);//成员访问
     printf("%s",s1_sex);
      printf("%d",s1_age);
    return 0;
}

struct Student *sp = &s1;
*sp.s_id <=> s1.s_id

三、bool类型

bool类型----只有true和false(在.c文件中需引入头文件#include <stdio.h> 在.cpp文件中直接使用)

0,空字符,NULL(空指针)-----为假

int main ()
{
   bool x = 3;//true 0000 0001
   x -= 1;//0
   x -= 1;//1
   x -= 1;//0
   return 0;

四、关系表达式/逻辑表达式

关系表达式:运算结果是bool值
逻辑表达式:运算结果是bool值
与(&&);-----截断(简洁与)优先级:11
或(||);-----截断(简洁或) 优先级:12
非(!);----优先级:2
若想改变值--------只能赋值,自加

五、关键字

一、typedef

int TNT-----变量
typedef int TNT-----类型
int a <=> TNT a

typedef struct student{
     char name [20];
     int age;
     double grade;
}sss;     

struct student s_1 <=> sss s_1 --------可以直接使用类型名称sss来定义一个新的结构体

typedef char str[100];
int main()
{
    str ghost;
    str person;
    return 0;
}

可以使用数组的名字 str直接来定义一个数组

typedef 可把一切合法的变量转化为类型

二、静态关键字(static)

static int b = 0;------静态变量只初始化一次(在 C 语言中,static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用 static 关键字修饰变量时,我们称此变量为静态变量。)

加静态关键字(static)在程序执行后被存在数据区

#include <stdio.h>
void count();
int main(void)
{
    int i=0;
    for (i = 0;i <= 5;i++)
    {
            count();
    }
    return 0;
}
void count()
{
    static num = 0;//声明一个静态局部变量
    num++;
    printf("%d\n",num);
}

需要保留函数上一次调用结束时的值。
如果初始化后,变量只会被引用而不会改变其值

三、外部关键字(extern)

外部关键字(extern)----告诉编译器,这个变量在同一个工程的其他文件存在(起声明作用)--------在链接的时候定位

extern int g_max;//变量声明
extern void fun();//函数声明
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值