c基础
文章平均质量分 90
normal_cai
这个作者很懒,什么都没留下…
展开
-
atoi ,itoa函数
C语言库函数名: atoi 功 能: 把字符串转换成整型数. 名字来源:array to integer 的缩写. 原型: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换转载 2012-02-26 16:01:38 · 624 阅读 · 0 评论 -
专题4-4.C语言中的字符串(国嵌C语言视频)
1. C语言中的字符串 从概念上讲,C语言中没有字符串数据类型 在C语言中使用字符数组来模拟字符串 C语言中的字符串是以’\0’结束的字符数组 C语言中的字符串可以分配于栈空间,堆空间或者只读存储区#include #include int main(){char s1[] = {'H', 'e', 'l', 'l', 'o'};char s2[] = {转载 2013-04-25 15:48:50 · 1105 阅读 · 0 评论 -
指针类型转换
1、强制类型转换看一下这个c代码:int a = 0x123456; //0x是十六进制的表示法char c = (char)a;printf("%x\n", c);在我的编译环境里输出的是什么呢? 是56,怎么得来的呢?int a的内存如下(左边是低地址的内容,右边是高地址的内容):0x56 0x34 0x12 0x00"是不是搞反了?" 有人奇怪(正如我当年转载 2013-05-07 20:47:49 · 1404 阅读 · 1 评论 -
各种nb资源
C++:http://huangdingjun.blog.163.com/ 网易博客 有好多关于C++的博文http://hi.baidu.com/dudiaodaoke/home独钓刀客vim:http://easwy.com/blog/ vim linux 牛人http://www.swaroopch.com/notes/Vim_zh-cn:%E7%A8%8B%E5%BA%8F转载 2013-05-15 09:15:11 · 788 阅读 · 0 评论 -
指针总结---很好很全面很强大(指针类型转换)
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*p转载 2013-05-06 18:01:46 · 890 阅读 · 0 评论 -
sprintf
选自《CSDN 社区电子杂志——C/C++杂志》http://emag.csdn.net 2005 年1 月 总第1 期 - 93 -本文作者:steedhorse(晨星)printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗?在将各种类型的转载 2013-07-16 11:24:13 · 666 阅读 · 0 评论 -
strchr,strstr--字符串
函数原型:extern char *strchr(char *str,char character)参数说明:str为一个字符串的指针,character为一个待查找字符。 所在库名:#include 函数功能:从字符串str中寻找字符character第一次出现的位置。 返回说明:返回指向第一次出现字符character位置的指针,如果没找到则返回转载 2013-07-16 15:40:27 · 1090 阅读 · 0 评论 -
Run-Time Check Failure #2 - Stack around the variable 'dlg1' was corrupted.
今天悲催的接二连三的出现这个错误,我查查看自己对话框类中的变量,都初始化了,最终在自己在对话框引入的类中发现,自己在其构造函数中初始化了一个字符数组变量,并且没有用过,去掉之后问题得到解决了。本人不建议重建工程就好了这种说法,这个肯定是作者无意识的在第二次重建中把一些为赋值得的变量赋了值,不到万不得已建议不要重建反思: 有时候对话框崩溃不一定是它本身有什么变量未初始化,有可能是转载 2013-08-03 17:41:09 · 2173 阅读 · 0 评论 -
动态分配二维数组,连续和非连续
(1)已知第二维,char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(char *) * m); printf("%d\n", sizeof(a));//4,指针 printf("%d\n", sizeof(a[0]));//N,一维数组free(a); (2)已知第一维,相当于是 M个一维数组的集合转载 2013-10-06 14:07:04 · 1175 阅读 · 0 评论 -
二叉树的建立,遍历,节点个数,深度
#include "stdio.h"#include "malloc.h"typedef struct tree_node{ int date; struct tree_node *L_child; struct tree_node *R_child;}node;void create_tree(node * &tree){ int ch; scanf("%d",原创 2013-10-05 16:11:29 · 856 阅读 · 0 评论 -
数组名a+1和&a+1的区别
以下代码会打印出什么样的日志呢?int a[2] = {1,2}; int main(){ printf("a = %p\n", a);// I printf("&a = %p\n", &a); //II printf("a + 1 = %p\n", a + 1);//IIIprintf("&a + 1 = %p\n",&a + 1);// IVreturn 0;转载 2013-04-25 15:37:10 · 12603 阅读 · 0 评论 -
指针数组和数组指针
1. 下面这些声明合法吗?问题:array代表数组首元素的地址,那么matrix代表什么?array和&array的地址值相同,但是意义不同,那么指向它们的指针类型相同吗?C语言中的数组有自己特定的类型数组的类型由元素类型和数组大小共同决定例:int array[5]的类型为int[5]定义数组类型 C语言中通过typedef为数组类型重转载 2013-04-25 15:58:15 · 840 阅读 · 0 评论 -
C语言 EOF,NULL(\0),换行符(\n),回车(\r)是什么?区别是什么?
第一个问题是EOF 它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) { putchar (c);原创 2013-04-23 15:44:54 · 5149 阅读 · 0 评论 -
指向多维数组的指针变量
8.4.3 指向多维数组的指针变量1 多维数组的指针多维数组可以看作是一维数组的延伸,多维数组的内存单元也是连续的内存单元。换句话说,C语言实际上是把多维数组当成一维数组来处理的。下面以二维数组为例说明这个概念。比如,现在有一个int型的二维数组a[3][4],计算机认为这是一个一维的数组a[3],数组的三个元素分别是a[0],a[1]和a[2]。其中每个元素又是一个一维数组,例如转载 2012-03-02 10:42:05 · 2337 阅读 · 0 评论 -
引用 exit、return、_exit、_Exit这几个函数的区别
1、exit函数和return函数的主要区别是:1)exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的。也可以这么讲:exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。main函数结束时也会隐式地调用exit函数,exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出转载 2012-02-26 16:03:58 · 490 阅读 · 0 评论 -
static,const,auto各个关键字的作用域和用法
int main(){ auto int i = 0; register int j = 0; static int k = 0; return 0;} 这三个变量有什么区别? auto变量存储在程序的栈中,默认属性static变量存储在程序静态区中register变量请求存储于CPU寄存器中 用法在现在的C编译器中原创 2012-10-27 15:19:20 · 964 阅读 · 0 评论 -
用rand()和srand()产生为随机数的方法总结,
标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void); 从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(unsigned seed); 参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每转载 2012-09-28 15:12:54 · 533 阅读 · 0 评论 -
关于int *p[n]和int (*p)[n]
在编程中,会遇到这样的情况:int *p[n];char (*p)[n];还有一种情况是声明函数:char *p();char (*p)();这些分别表示什么意思呢?表面上看这些问题,好像是指针,但是,如何来正确判断这几个定义,需要我们首先有运算符优先级的概念。 在c语言中,[]和()的优先级比星号(星号的名字叫做“指针运算符”)要高,所以,在这几个声原创 2012-06-25 20:29:49 · 1232 阅读 · 0 评论 -
数组的首地址,数组名取地址,地址的强制转换为int
#include int main() { int a[5]={7,8,9,10,11}; int *ptr1=(int *)(&a+1); int *ptr2=(int *)((int)a+1); printf("%d\n",&a);printf("%d\n",(int)a);printf("%d,%d\n",ptr1,ptr2);printf("%d,%x原创 2012-12-03 17:28:24 · 3374 阅读 · 3 评论 -
表达式求值(后缀表达式)--栈
数据结构 表达式求值在计算机中,表达式可以有三中不同的标识方法设 Exp = S1 + OP + S2则,称 op + S1 + S2 为表达式的 “前缀表达式”称 S1 + OP + S2 为表达式的 “中缀表达式”称 S1 + S2 + OP 为表达式的 “后缀表示法”可见,它以运算符所在不同位置命名的。例如: Exp = a转载 2013-02-24 17:24:25 · 3019 阅读 · 0 评论 -
大数据/高精度加减乘除
#include #include using namespace std;inline int compare(string str1, string str2){ if(str1.size() > str2.size()) //长度长的整数大于长度小的整数 return 1; else if(str1.size() <转载 2013-03-15 16:06:44 · 1098 阅读 · 0 评论 -
利用递归实现动态指定循环层数
舍友给的一个程序,要求:任意一组确定的数(用户输入),根据一个参数(用户指定),返回一个求和运算的结果。和是这样算的:用户指定参数t的值,从这组数中,任取t个组合数求乘积作为求和的项,取遍所有组合可能,求出总和~~ 这个要咋整呢?我们先来看下t的值: t=1,这种情况就是简单的所有数加起来 t=2,则是从这组数里每两个相乘,把所有组合乘积加起来 t=3,则是转载 2013-04-08 22:56:34 · 5691 阅读 · 0 评论 -
函数中局部变量的返回
http://blog.csdn.net/jackystudio/article/details/11523353一般说来,函数中是可以进行局部变量的返回的,不然岂不是全部要用全局变量,如果使用了全局变量,那还有必要进行返回吗?那函数就没有它存在的意义了!但是要注意了,这里所谓的局部变量的返回很有内涵,什么样的值才可以进行返回而不出错? 其实,只要遵守一句话即可:函数转载 2013-12-02 20:12:45 · 1438 阅读 · 0 评论