
c/c++
codingnote
记录编程生涯中的点点滴滴
展开
-
c语言专题
本篇作为一个引子,领着大家梳理c语言中难点或容易忽视的知识点,知识点以专题形式展开。专题一 结构占用内存长度 在linux/windows上运行下面一段程序,你能总结出struct内存对齐规则吗?struct ta { short b; long a; char c;};struct tb { short b; int a; char c;};原创 2015-04-02 19:58:19 · 513 阅读 · 0 评论 -
c语言宏定义中的#和##
“##”是一个连接符号,用于把参数连在一起 “#”是“字符串化”的意思。出现在宏定义中的”#”是把跟在后面的参数转换成一个字符串int v5 = 5;#define f(n) printf("v "#n" = %d\n", v##n)f(5); //输出:v 5 = 5//define.c#include <stdio.h>#define FUNC_STOP stopint player_st原创 2015-04-02 20:24:48 · 555 阅读 · 0 评论 -
c语言中的"诡异"
先看下面一段小程序,2个printf函数参数语法很奇怪吧,有错误没?#include <stdio.h>int main(){ int a = 1, b = 3; const char *str = "Hello, world, I'm C!"; printf("%c %s\n", a[str], &b[str]); printf("%c %s\n", a["0原创 2015-04-02 20:05:05 · 602 阅读 · 0 评论 -
c++ - tips
const总是修饰其右边最近元素const char *const p = "abc";//第一个const修饰char,第二个修饰p非const底层数据类型不能赋值给const底层数据,例如,const char *pa;char *pb;pb = pa;//错误,底层数据不对应,可以用const_cast<char*>(pa)typedef用法typedef int list[6]原创 2015-04-02 16:52:34 · 499 阅读 · 0 评论 -
腾讯后台服务开发一面归来
今天去面试了腾讯后台服务开发职位,首先是笔试,有三道题目。 1.设计冒泡排序算法 2.实现下面类中的方法class String { public: String(const char *p); String(const String &s); String &operator = (const String &s); ~String(); pri原创 2015-04-15 12:50:22 · 1044 阅读 · 0 评论