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. javascript之非构造函数的继承

    这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承". 今天是最后一个部分,介绍不使用构造函数实现"继承". 一.什么是 ...

  2. 浅触selinux(持续更新)

    ls -lZ 查看selinux权限情况 chcon命令 修改对象(文件)的安全上下文,比如:用户.角色.类型.安全级别.也就是将每个文件的安全环境变更至指定环境.使用--reference选项时,把 ...

  3. LeetCode--038--报数(*)

    问题描述: 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数.其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作  "one ...

  4. codeforces 576a//Vasya and Petya's Game// Codeforces Round #319 (Div. 1)

    题意:猜数游戏变种.先选好猜的数,对方会告诉你他想的那个数(1-n)能不能整除你猜的数,问最少猜几个数能保证知道对方想的数是多少? 对一个质数p,如果p^x不猜,那么就无法区分p^(x-1)和p^x, ...

  5. Java连接各种数据库的实例

    1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ...

  6. Java GUI编程中AWT/swing/SWT的优缺点

    http://www.cnblogs.com/dugang/archive/2010/10/22/1858478.html AWT AWT是Abstract Window Toolkit(抽象窗口工具 ...

  7. HashMap知识点、问题

    转载:https://blog.csdn.net/qq_27007251/article/details/71403647 https://www.cnblogs.com/kxdblog/p/4323 ...

  8. sql server中的大数据的批量操作(批量插入,批量删除)

    首先我们建立一个测试用员工表 ---创建一个测试的员工表--- create table Employee( EmployeeNo int primary key, --员工编号 EmployeeNa ...

  9. Maven 打jar包,pom文件配置

    以下是pom.xml文件的相关配置. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...

  10. 2018-北航-面向对象567次OO作业分析与小结

    设计策略及其变化 第五次作业-多线程电梯 在这次作业一开始的大部分时间,我一直想着怎样设计最为完美,完全使用BlockingQueue,导致交作业前发现设计并不能满足指导书的要求.最后仓皇之中加了一个 ...