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 语法的主要内容,如果未能解决你的问题,请参考以下文章