![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
从C开始
miss_chalk
单细胞单线程妞
展开
-
C语言深度剖析--结构体
1、空结构体多大??结构体所占的内存大小是其成员所占内存之和(关于结构体的内存对齐,请参考预处 理那章)。这点很容易理解,但是下面的这种情况呢? struct student { }stu; sizeof(stu)的值是多少呢?在Visual C++ 6.0 上测试一下。 很遗憾,不是0,而是1原创 2012-07-12 09:30:35 · 480 阅读 · 0 评论 -
C语言笔记--cin.fail()
cin.fail()cin.fail判断流操作是否失败.如果输入失败就会返回true.int a;cin>>a;if(cin.fail()){ cout}else{..}如果要输入一个整数,你输入的不是整数(是字母等)输入一个字符串int 10,怎么把int 和10分别提取出来呢?原创 2012-07-20 07:53:55 · 9416 阅读 · 0 评论 -
一次谷歌面试趣事
很多年前我进入硅谷人才市场,当时是想找一份高级工程师的职位。如果你有一段时间没有面试过,根据经验,有个非常有用的提醒你应该接受,就是:你往往会在前几次面试中的什么地方犯一些错误。简单而言就是,不要首先去你梦想的公司里面试。面试中有多如牛毛的应该注意的问题,你可能全部忘记了,所以,先去几个不太重要的公司里面试,它们会在这些方面对你起教育(再教育)作用。我第一家面试的公司叫做gofish.com,据我转载 2012-07-18 17:45:04 · 4000 阅读 · 0 评论 -
C语言--字符串长度的计算方法
提示:(1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!!1、不带转义字符的字符串 如:“abc!x=/”,其长度为 7 2、带转义字符的字符串 (1) 字符串“abc\n”:其中的'\n'为转义字符(换行符),计算字符串长度时只能计作一个字符,所以该字符串的长度为4(而不是5)原创 2012-07-21 16:32:59 · 2814 阅读 · 0 评论 -
C语言数据类型
对以前知识漏洞的弥补1、int 取值范围从-2 31~2 31-131的由来:如果无符号就 32,如果有符号,那么符号占一位,所以是32-1=31.2、无符号数就是自然数。字节是内存的单位 。1Byte=8bit(位)。一个字节由8位构成。3、float字节数为4,double字节数为8float:小数点后6位准确。double:小数点后15位准确。4、printf原创 2012-07-11 19:12:43 · 769 阅读 · 0 评论 -
C语言笔记-字符串
可以用scanf()接受字符串,它不接收空格 char str[100]="Good morning"; scanf("%s",str);str中的内容是Good char str[100]="Good morning"; scanf("%3s",str);str中的内容是Goo char str[100]="Good morning"; scanf(原创 2012-07-23 09:13:35 · 894 阅读 · 0 评论 -
C语言和C++面试常考点
1 求解[cpp] view plaincopyprint?char str[100] = "Hello World";sizeof(str) = ?;srlen(str) = ?char str1[100] = "Hello\0World";strlen(str1) = ? 考点: sizeof函数和转载 2012-07-24 14:06:07 · 1452 阅读 · 1 评论 -
C语言深度解剖---const篇
1、const是constant的缩写,是恒定不变的意思,也翻译为常量常数等,很不幸,正是因为这一点,很多人都认为被const修饰的是常量,这是不精确的,精确的说应该是只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容。const推出的初始目的,正是为了取代编译指令,消除他的缺点,同时集成他的优点,(define不是关键字哦!!)const修饰的只读变量必须在定义的同原创 2012-07-12 08:36:44 · 706 阅读 · 0 评论 -
C语言-函数
1、实参和形参在数量上,类型上,顺序上应严格一致,否则会发生“类型不匹配”错误。2、实参可以是常量,变量,表达式甚至是函数。,但是在传递给函数前,必须有确定的值。3、形参变量只有在被调用时才分配内存单元,只有在函数内部有效,函数结束后不能再使用。4、实参和形参占据不同的存储单元。5、函数默认采用值传递,即实参的值单向传递给形参,实参的值并不改变。(无论形参怎么变)如果函原创 2012-07-26 10:17:06 · 586 阅读 · 0 评论 -
C语言笔记最大公约数和最小公倍数
main(){ int a,b,num1,num2,temp; printf("please input two numbers:\n"); scanf("%d,%d",&num1,&num2); if(num1交换两个数,使大数放在num1上*/ { temp=num1; num1=num2; num2=temp; }原创 2012-07-18 16:58:27 · 647 阅读 · 0 评论 -
谷歌经典面试题
(1)11 12 11 2 1 11 1 1 2 2 1下一行是什么?答案:其实每一行都是对上一行的“统计”,而且去掉了汉字。第一行:“1”统计为:1个1,去掉“个”字,就变成了“11”,也就是第二行。同理,第二行可统计为:2个1,去掉“个”字,就变成了“21”,也就是第三行。同理,第三行可统计为:1个2和1个1,去掉“个原创 2012-07-18 17:27:25 · 3458 阅读 · 0 评论 -
C语言深度剖析--枚举
枚举与#define宏的区别 1),#define 宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值。 2 ),一般在编译器里,可以调试枚举常量,但是不能调试宏常量。 3 ),枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个。 枚举能做到事,#define 宏能不能都做到?如果能,那为什么还需要原创 2012-07-12 10:10:53 · 864 阅读 · 0 评论 -
C语言深度剖析--注释误会
y =x/*p y = x/*p ,这是表示x 除以p 指向的内存里的值,把结果赋值为y ?我们可以在编译器 上测试一下,编译器提示出错。 实际上,编译器把/* 当作是一段注释的开始,把/*后面的内容都当作注释内容,直到出 现*/为止。这个表达式其实只是表示把x 的值赋给y ,/*后面的内容都当作注释。但是,由 于没有找到*/,所以提示出错。原创 2012-07-12 10:12:50 · 702 阅读 · 0 评论 -
C语言深度剖析--运算符
1、 int i=0; int j=0; if((++i>0)||(++j>0)) { //打印出i 和j 的值。 } 结果:i=1;j=0。 不要惊讶。逻辑运算符||两边的条件只要有一个为真,其结果就为真;只要有一个结果 为假,其结果就为假原创 2012-07-12 10:52:08 · 735 阅读 · 0 评论 -
C语言深度剖析-预处理
宏定义 除了定义宏常数之外,经常还用来定义字符串,尤其是路径: A),#define ENG_PATH_1 E:\English\listen_to_this\listen_to_this_3 B),#define ENG_PATH_2 “E:\English\listen_to_this\listen_to_this_3 ”原创 2012-07-12 12:35:57 · 493 阅读 · 0 评论 -
C语言运算符和表达式
1、const在定义时必须进行初始化,因为不能再赋值。在程序中也不能修改其值。2、printf("abc");_getch();printf("\b \b");输出ab3、printf("abc");if(8==_getch())printf("\b \b");Backspace的ASCII码为8.按Backspace执行。4、判断字符以#结束while((原创 2012-07-13 11:27:04 · 891 阅读 · 0 评论 -
C语言笔记
1、C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数。在使用他们时,千万不要误认为他们是C语言提供的“输入输出语句”。printf和scanf不是C语言的关键字,而只是函数的名字。C提供的函数以库的形式存放在系统中,它们不是C语言文本中的组成部分2、若变量已正确说明为float原创 2012-07-15 15:20:05 · 987 阅读 · 0 评论 -
C语言笔记switch
1、为什么if后面不能写0根据左结合性,先算02、switch后面括号中的表达式只能是整型、字符型或枚举型表达式,不能使用浮点数作为判断条件。3、case后面的常量不能相同,即constant1不能等于constant2.如果相等,会出现语法错误。原创 2012-07-16 10:56:07 · 783 阅读 · 0 评论 -
C语言笔记流程控制
1、输入一个数组四周的数的和int i,j,a[M][N],sum=0;for(i=0;i{for(j=0;j{scanf("%d",&a[i][j]); if(i==0||i==M-1||j==0||j==N-1)sum+=a[i][j];}}for(i=0;i{for(j=0;j{printf("%d\t",a[i][j]);}原创 2012-07-17 17:35:05 · 831 阅读 · 0 评论 -
C语言 可变参数 (初始化OC数组最后的nil的由来)
// main.m// sentinel//// Created by Sinosoft on 9/17/13.// Copyright (c) 2013 com.Sinosoft. All rights reserved.//#import #import void printStrings(char *first,...) __attribute__((senti原创 2013-09-24 09:58:01 · 1913 阅读 · 0 评论