C语言细节注意】的更多相关文章

C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当我们要将一种数据类型赋值给另一种数据类型,或者将某个操作数进行如此的转化的时候,就用到了强制类型转换.  强制类型转换分成两种:1.显示强制类型转换(主动) 2.隐式强制类型转换(被动/自动) 要区分这两者很简单,看下面例子:(we assume that b is a variable of integer…
C语言细节——献给初学者(二) 主题  循环运用+选择判断 C语言循环有for和while/do...while: 选择判断有:if...else和switch...case 在循环中需要注意搭配break和continue的运用,在多层循环中,当前层的break和continue只对当前层有效,比如: 此处定义了一个num二维数组,想要打印出这个数组,continue这句作用于第一层循环,控制行,所以数组的num[3][]这行的数据不会输出: 而break这里作用于第二层循环,控制列,所以其实…
C语言细节——献给入门者(一) 主题  输入输出需要注意的细节 首先我们要知道大致有scanf(),printf(),getchar(),putchar(),gets(),puts()这几种输入方式. 1⃣️.scanf()&gets() 首先看个最普通的例子: char str[20]; scanf(“%s”,str); 当我们输入helloworld,此时str为“helloworld” 但是当我们输入hello world,此时str为“hello” 原因是scanf输入字符串时遇到空格和…
C语言细节总结笔记 */--> C语言细节总结笔记 Table of Contents 1. 三步异或法交换数字 2. 做差法交换数字 3. 按n位置位 4. 求余求商求积 5. 辗除法求最大公约数 6. 求数组元素个数方法 7. 运算符优先级 8. scanf处理字符串 9. 指针题 10. int const *p问题 11. 数组和指针 12. 字符数组 13. 二维数组 14. 数组指针 15. 指针数组 16. 指针函数 17. 函数指针 18. 函数指针数组 19. 存储方式 20.…
这篇文章主要讨论C语言细节问题.在找一份工作的时候,语言细节占的比例非常小,之前看某个贴着讨论,估计语言细节在面试中,占了10%的比重都不到,那为什么还要研究C语言的细节呢,我觉得有三个原因促使我总结这篇文章: 1. 总会有些面试官喜欢问这样的问题,尤其是偏底层开发的面试官. 2. 总有有那么两个2B同学.同事,搞两个很偏的知识点来考你,把你难倒以后,他就乐呵呵的满足了. 3. 对C语言有更加巩固的基础,增加信心,在代码出错时,可以非常肯定哪里没有错,而把精力花在真正的问题上. 1) switc…
主要内容:指针和数组细节,"//"的可移植性说明 #include <stdio.h> int main(int argc, char **argv) { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; #if 0 /* 按移植性来说.在<c语言程序设计--现代方法>指出要用当前凝视方法.而不是// 由于一些编译可能不支持 */ // 错误举例 while(*a != 0) { a++; // a++ 相当于a = a+1,不能改变a的值…
前段时间用C语言写了个小的程序,也算是复习了下好久没有用的C语言.也是有好多的坑了,哈哈. 1.C语言的结构体 结构体的命名最好能够做到规范.因为不同的 编译环境下,不是很规范的命名有时候会导致莫名其妙的错误,而且很难发现.所以最好是在源头上避免这种错误. 比如这样的方法命名: struct _stu { char *line; struct _lnode *next;}stu; typedef struct _stu *LNodeStu; 注意下划线,有时候会有问题: 2.关于字符串.字符数组…
主要内容:由/* */ 引起的凝视错误 有4处凝视错误 #include <stdio.h> #define N 10 //使用以下宏定义的凝视 #define BSC // #define BMC /* #define EMC */ BSC daewawe BMC fewafewa EMC //凝视优先于宏定义被预处理.当展开宏之前凝视已经处理完成,这是再展开宏出现// /**/就会出错 // 不知道你有没有看出以下凝视中那里除了问题 int main() {     /*dewag int…
C语言常见问题笔记:    1. 指针的声明     char * p1, p2;  p1 是一个指向char类型的指针,而p2是一个char类型变量  这是由于 * 并不是基本类型的一部分,而是包含被声明标识符的声明符的一部分.    2. 储存类型     同一个静态函数或静态变量最好在所有的声明和定义出都包含(static)  extern 作为一个格式上的提示,表明函数的定义可能出现在另一个源文件中  关健字auto毫无用处,已经过时了   3. 在一个文件中定义了一个extern数组,…
/******************************************************************************* ——笔记 1. 函数申明的书写. 可以省略参数名称,只保留参数类型,但最好不要省略形参名称,他们常可以 向程序员传递一些有用的信息. char * strcpy(char * dst, char * src); 2. const 易于被混淆的部分说明 const int limit = 10; limit = 7; // [Error]…