C 语法

Posted nangongyibin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语法相关的知识,希望对你有一定的参考价值。

 
#include <stdlib.h>   <stdio.h>
system(""); 命令  调用系统的指令
C 基本数据类型    没有boolean 没有byte    c  Char类型 1字节  long类型 4字节 多了一个signed unsigned 有符号无符号
用来修饰整型变量   加上unsigned之后 最高位不是符号位而是数值位
 
C的输出函数 printf("字符串+占位符(变量)", ......)    字符串 %s
C 的字符串的定义方式   char str[] = {‘a‘,‘b‘,‘c‘,‘‘}; 字符串的结束符  
c的数组的声明方式   [] 需要放到变量名的后面
char str[] = "你好";
char* str = "你好";
 
C 的输入函数    scanf("占位符",&变量名);     c的数组不检测越界
内存地址的概念   给每一个byte的内存 添加一个编号 这个编号就是内存地址 通过内存地址来进行内存的访问
 
int i = 123;
int* p = &i;   p的值  *p 是什么意思  &p值什么
值传递 传递的当前变量中保存的值  java没有指针 只能做值传递 不能用引用传递
引用传递  变量的地址值   
 
数组和指针 通过指针操作数组
数组变量名的地址 就是第一个元素的地址 就是这个数组的首地址
获取到了数组的首地址之后就可以通过指针的位移运算来对数组进行操作
位移运算  指针每+1 地址变化几个字节 跟指针变量的类型有关系  
 
指针变量的长度   32位环境 4byte    64位环境 8byte     硬件  操作系统 编译环境 如果这三个条件有一个是32位的 就是32位环境   只有当硬件  操作系统 编译环境 都是64位的时候 才能是64位的环境
 
多级指针  n级指针的变量地址 要用n+1级指针来保存   int i = 123;   int* p = &i;  int** p2 = &p; int*** p3 = &p2;
 
静态内存分配 栈内存  大小固定 超过固定的大小 栈溢出 stackoverflow  系统统一分配回收
                         c 数组可以在栈当中 
动态内存分配   malloc   free realloc  堆内存  
 
结构体  class   struct 名字   只能声明变量    大小
函数指针    返回值(*函数指针名字)(形参);
结构体的指针    struct studeng stu;   struct student* p = &stu;
                                (*p).        p->
                          struct student** p2 = &p;        (**p2).  (*p2)->
 
联合体union 枚举enum    typedef 

以上是关于C 语法的主要内容,如果未能解决你的问题,请参考以下文章

Verilog语法问题

C语言语法错误 : “”咋解决?

C语言啥是语法啊

【Wireshark】Wireshark 过滤器表达式语法

c#语法与java语法的对比分析

yaml基本语法