C语言笔记
陶人超有料
一个读研中创业、打工中学习的能搞全栈、也搞算法、目前在搞大数据的奋斗者。
展开
-
函数与指针
include typedef int(FUNC)(int); int test(int i){ return i*i; } void f() { printf("Call f()...\n"); } int main(){ FUNC* pt=test; void (* pf)()=&f; //也可以直接写函数名 p原创 2018-01-10 22:30:59 · 111 阅读 · 0 评论 -
函数与指针
函数的类型由返回值 ,参数类型和参数个数共同决定 如: int add(int , int )--------->其类型为int ( int , int) 函数指针用于指向一个函数 函数名是执行函数体的入口地址 可通过函数类型定义函数指针: FuncType* pointer 也可直接用 type ( *pointer )(parameter ...原创 2018-08-02 00:37:13 · 116 阅读 · 0 评论 -
数组的本质
数据名代表数组首元素的地址; 数组的地址需要用取地址符&才能得到; 数组首元素的地址值与数组的地址值相同 数组首元素的地址与数组的地址是两个不同的概念; int a[5] = { 0 }; printf("a = %p\n", a); printf("&a = %p\n", &a); printf("&a[0] = %p\n...原创 2018-07-16 01:04:59 · 470 阅读 · 0 评论 -
C中的字符串
C中没有字符串(有序字符的集合)的概念: c中通过特殊的字符数组模拟字符串 c中的字符串是以‘\0’结尾的字符数组C中,双引号引用的单个或多个字符是一种特殊的字面量: 存储于程序的全局只读存储区中 本质为字符数组,编译器自动在结尾加上'\0'字符char b = "abc"[0]; char c = *("123" + 1); char t ...原创 2018-07-14 00:52:06 · 156 阅读 · 0 评论 -
位运算符分析
位运算符对bit位进行操作,效率最高&按位与| 按位或^ 按位异或~ 取反<< 左移------>左移操作数必须为整数类型,char和short被隐式转化为int后进行位操作 规则:高位丢弃,低位补0 左移n相当于乘以2的n次方,但效率比数学运算符高>> 右移------->右操作数的范围必须为...原创 2018-07-14 00:18:26 · 107 阅读 · 0 评论 -
逻辑运算符分析
|| ------》当遇到真就停止 && ———》当遇到假就停止 int i = 0; int j = 0; int k = 0; ++i || ++j && ++k; printf("%d\n", i);---->1 printf("%d\n", j);---->0 printf("%d...原创 2018-07-13 23:55:41 · 182 阅读 · 0 评论 -
C语言中的单引号跟双引号
单引号用来表示字符字面量(编译为对应的ASCLL码);------->'a'+1-----》表示a的ASCALL码加1-----》结果为b双引号用来表示字符串字面量(被编译为对应的内存地址);--------->"a"+1表示指针运算-------》结果指向"a"结束符'\0'printf的第一个参数当做字符串内存地址---------》printf('\n')-----printf(...原创 2018-07-13 23:21:50 · 4337 阅读 · 1 评论 -
指针与数组的分析
指针之间只支持减法运算,参与减法运算的指针类型必须相等 注:1,只有当两个指针都指向同一个数组中的元素是,指针相减才有意义,其意义为:指针所指元素的下标差 2,当两个指针指向的元素不在同一个数组中时,结果未定义 char s1[] = {'H', 'e', 'l', 'l', 'o'}; int i = 0; char s2[] = {'W', 'o', '...原创 2018-07-17 00:02:43 · 116 阅读 · 0 评论 -
指针的阅读方法
读懂复杂的指针需要用到《右左法则》 int(*p) (int);====> p为指针,指向函数,指向的函数有一个int参数,返回值为int int (*p1) (int *,int (*f) (int *));======>p1为指针,指向函数,指向的函数有int*, f为第二个参数,它是函数指针,指向的函数参数是int*,返回值是int;;; 返回值为int; int (*(p2)[5]原创 2018-01-11 18:03:06 · 200 阅读 · 0 评论 -
指针数组与数组指针
c语言中的数组有自己特 定的类型 数组的类型由元素类型和数组大小共同决定 如:int array[5]的类型为int[5] 定义数组类型: 通过typedet type(name)[size];为数组类型重命名 数组类型:typedef int(AINT5) 【5】; 则数组定义为:AINT5 array; 数组指针用于指向一个数组#include type原创 2017-12-18 18:14:51 · 145 阅读 · 0 评论 -
多维数组与多维指针
指针本质是变量,指针会占用一定的内存空间:可以定义指针的指针来保存指针变量的地址值 #include<stdio.h> int main(){ int i=0; int* p=NULL; int** pp=NULL; pp=&p; *pp=&i;//作用就是将p指针指向i的地址 printf("%d\n",*p);//0 printf("%d\n...转载 2018-08-02 02:02:00 · 138 阅读 · 0 评论