1.输出格式控制:%x按int型16进制输出; %d按int型十进制输出;变量超出4字节会丢掉低位!!!!(却不是被截断!!!)

void main()
{
int a=0x11223344;
long b=0x1122334455667788;
int c = b;
int d = (int)b;
char *pc = &a;
printf("sizaof(int)=%d sizeof(long)=%d\n", sizeof(int), sizeof(long));
printf("b=0x%x\n", b);
printf("b=0x%p\n", b);
printf("c=0x%x\n", c);
printf("c=%p\n", c);
printf("d=0x%x\n", d);
printf("d=%p\n", d);
printf("pc=%x\n", *pc);
}
输出:
sizaof(int)=4 sizeof(long)=8
b=0x55667788
b=0x0x1122334455667788
c=0x55667788
c=0x55667788
d=0x55667788
d=0x55667788
pc=44
小端低位地址,高位高址,直接截断

2.全局变量的初始化右值必须是常量(可以常量运算), 但是不能是变量,因为编译器在编译期不知道变量的值是什么。

int a = 10+5; 对
int b = a;       错

3. 无符号数进行减除操作,需要注意

void main()
{
unsigned int a = , b = ;
unsigned int c = a - b;
unsigned int d = c / ; printf("d=%d\n", d); /*d=42949672*/
}
void main()
{
unsigned int a = , b= , c=, d=;
unsigned int m, n, p; m = a - b;
n = c - d;
p = (m* + n)/; printf("p=%d\n", p); /*unsigned int: 0, unsigned char 1*/
}

4. sizeof("Hello") 为6,不为4或8!

5. (*p)++ 与 *p++

 #include <stdio.h>
#include <stdlib.h> void main()
{
int a = ;
char *p = &a;
printf("p=%p, *p=%d\n", p, *p); (*p)++ = ; printf("p=%p, *p=%d\n", p, *p);
} /*
*p++ = 20;
p=0x7ffc77230674, *p=10
p=0x7ffc77230675, *p=0 (*p)++ = 20;
test.c:11:9: error: lvalue required as left operand of assignment
(*p)++ = 20;
^
*/

6. memcpy() 与 memmove()的区别是前者原地址和目的地址不能重复,后者是可以重复的。

7.由于浮点型数据并没有准确的数值, 所以不得进行相等(或不相等)比较。

float value = 12.23;
if (value == 12.23) { //判断结果为false
....
} 如果需要对其进行等值判断, 可采用类似如下方式:
float value = 12.23;
if (value >= 12.2299 && value <= 12.2301) { //判断结果为true
....
}

C易忽视的基础的更多相关文章

  1. JAVA中最容易让人忽视的基础。

    可能很多找编程工作的人在面试的时候都有这种感受,去到一个公司填写面试试题的时候,多数人往往死在比较基础的知识点上.不要奇怪,事实就是如此一般来说,大多数公司给出的基础题大概有122道,代码题19道左右 ...

  2. 易忽视的Python知识点

    1.sort和sorted (1)sort:会直接修改原始列表的序列,只是排序,不去重. >>> a=[2,5,7,8,3,5,1,3,9,6,2] >>> a.s ...

  3. 关于java学习中的一些易错点(基础篇)

    由JVM来负责Java程序在该系统中的运行,不同的操作系统需要安装不同的JVM,这样Java程序只需要跟JVM打交道,底层的操作由JVM去执行. JRE(Java Runtime Environmen ...

  4. [转]ThinkPHP的CURD易忽视点小结

    转自: http://www.oschina.net/code/snippet_2285640_44437. 1.使用对象的方法插入数据 D用法. $Form = D('Form'); $data[' ...

  5. ThinkPHP的易忽视点小结

    1.使用对象的方法插入数据 D用法. $Form = D('Form'); $data['title'] = 'ThinkPHP'; $data['content'] = '表单内容'; $Form- ...

  6. 转:int整数除以int整数一定得到的是int整数(易忽视)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u014053368/article/de ...

  7. 【进阶之路】Redis基础知识两篇就满足(二)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第二篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  8. 【进阶之路】Redis基础知识两篇就满足(一)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第一篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  9. 不把C作为第一门语言是个好主意么

    ----------------------------------------------------------------------------------   不把C作为第一门语言是个好主意 ...

随机推荐

  1. qbxt联赛集训d1t3

    题意 给出一个长度为n的序列,求所有区间的区间最小值乘区间最大值的和.(n<=1e5) solution:

  2. Docker 构建 redis 集群

    安装docker 1.yum install docker 方法一: 1. docker pull redis 2.docker run -d --name redis-1 -p 7001:6379 ...

  3. 『Python』pycharm常用设置

    学习一下pycharm的快捷操作,提升速度,也提升舒适度,笑. 常用快捷键 ctrl + d :复制粘贴本行到下一行 ctrl + y :删除本行 ctrl + 鼠标点击 :跳转 ctrl + / : ...

  4. Delegate比较全面的例子(需整理)

    将Delegate理解为接口,只有一个方法的接口,这样最容易理解.这个方法只有声明,没有实现,实现在别的类.(实际上应该把它看作函数指针,不过接口更容易理解些.) 在你的类中有一个Delegate就相 ...

  5. MVC ——设置启动 URL

    Visual Studio 会以一种有助的尝试,根据当前正在编辑的视图,让浏览器请求一个 URL.但这是一个不稳定的特性. 为了对浏览器的请求设置一个固定的 URL,可以从 Visual Studio ...

  6. EBS标准的查看供应商地点

    VO数据源:oracle.apps.pos.supplier.server.SitesVO SELECT pvsa.address_style, hzl.language, pvsa.province ...

  7. Activiti工作流笔记(4)

    Activiti工作流启动流程 /** * 启动流程 * */ public class ActivitiTest2 { RepositoryService repositoryService; Ru ...

  8. (剑指Offer)面试题59:对称的二叉树

    题目: 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 思路: 对于一棵二叉树,从根结点开始遍历, 如果左右子结点有一个为NULL,那 ...

  9. docker 部署 flask(一)配置环境及测试

    简介: flask也是要部署的.不能老在我们的pycharm里面跑测试服务器. 各种配置linux,我看就算了吧.我们用docker部署. 也就两三行命令. 一:选择基础镜像 GitHub repo: ...

  10. CCF CSP 201703

    CCF CSP 2017·03 做了一段时间的CCF CSP试题,个人感觉是这样分布的 A.B题基本纯暴力可满分 B题留心数据范围 C题是个大模拟,留心即可 D题更倾向于图论?(个人做到的D题基本都是 ...