![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
15pb_lvl1_c
dagger0x
这个作者很懒,什么都没留下…
展开
-
【LVL1_5_c】【思考题】【7】char *p1="hellow world"和char p2[]="hellow world"的区别
语句1:char *p1="hellow world"; 语句1:char p2[]="hellow world"; (理解这个问题,首先要大致了解什么是栈,什么是全局变量) 一、 "hellow world"是一个常量, "hellow world"像全局变量一样保存在内存的静态数据区。 语句1表示将"hellow world"这个常量的首地址,赋给指针变量P. 二、 语原创 2015-12-28 19:38:27 · 416 阅读 · 0 评论 -
【LVL1_5_c】【课后练习】【6】编写一个char_search(char str[],char c),比较字符串和字符。
题目:编写一个函数char_search(char str[],char c),如果字符串str中包含字符C则返回数值1,否则返回数值0;考察知识点:一维数组作为实参形参的使用方法。 // ConsoleApplication2.cpp : 定义控制台应用程序的入口 #include "stdafx.h" #include #include #include int char_search(原创 2015-12-26 19:46:15 · 529 阅读 · 0 评论 -
【LVL1_5_c】【课后练习】【5】 写一个可以倒置数组元素的函数.
// ConsoleApplication2.cpp : 定义控制台应用程序的入口 #include "stdafx.h" #include #include #define N 10 void invert(int array[],int n); int _tmain(int argc, _TCHAR* argv[]) { int array[N] = { 1, 2, 3, 4,原创 2015-12-26 17:01:00 · 649 阅读 · 0 评论 -
【LVL1_5_c】【课后练习】【4】 定义一个函数,交换两个数的值。(使用指针)
// ConsoleApplication2.cpp : 定义控制台应用程序的入口 #include "stdafx.h" #include #include void nswap(int* nNum1, int* nNum2); int _tmain(int argc, _TCHAR* argv[]) { //用户输入数字 int nNum1, nNum2; printf("请输入数原创 2015-12-26 16:34:39 · 1221 阅读 · 0 评论 -
【LVL1_5_c】【课后练习】【3】 求两个数组的对应元素之和。
// ConsoleApplication2.cpp : 定义控制台应用程序的入口 #include "stdafx.h" #include #include int _tmain(int argc, _TCHAR* argv[]) { int a[5] = {1,2,3,4,5}; int b[5] = {11,4,2,7,9}; int c[5] = { 0 }; int原创 2015-12-26 16:23:29 · 339 阅读 · 0 评论 -
【LVL1_6_c】【思考】X86 c语言结构体数据对齐的规则
数据对齐和CPU结构相关,其有利于CPU减少对内存的操作次数,提高存取效率。 写程序的时候,不需要考虑对齐问题,编译器会替我们选择适合目标平台的对齐策略 X86 CPU下C语言结构体的数据对齐规则: 规则1 数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小转载 2015-12-29 21:30:35 · 705 阅读 · 0 评论 -
【LVL1_7_c】【思考题】【7】以a+ r+ w+模式打开的文件都是可读可写的,哪种模式更适合用来改变文件已有内容?
r+ 打开时,文件内部读写位置指针指向文件头, 可以通过文件随机定位函数freek()来把文件内部读写位置指针移动到指定位置修改文件内容 a+ 同上,指向文件尾 w+ 打开时 文件已经存在 则会破坏文件内原有的所有内容,因此不适合用来修改已有文件内容.原创 2015-12-29 21:04:14 · 1161 阅读 · 0 评论 -
【LVL1_7_c】【思考题】【2】什么是溢出?什么是内存泄漏?
未编辑完成 什么是溢出? 什么是内存泄漏? 申请分配了一块内从空间使用,程序运行完以后,这块空间不用了,却没有归还给系统,如此内存越用越少。 申请→用完了不归还→越用越少。原创 2015-12-29 14:51:09 · 321 阅读 · 0 评论 -
【LVL1_7_c】【上机题】【1】使用动态数组,存放10个int类型数据,赋值,再遍历
// ConsoleApplication8.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include int _tmain(int argc, _TCHAR* argv[]) { int len; int * arr; arr = (int *)malloc(sizeof(int)*10);原创 2015-12-29 16:16:07 · 543 阅读 · 0 评论 -
【LVL1_7_c】【思考题】【6】fprintf(),fscanf(),fgets(),以及fputs函数的作用.
fprintf(), 按照要求的格式将数据写入文件 调用形式: fprintf(fpFile, "%ld,%s" , num,name) 作用是将变量num,name按照%ld %s的格式写入fp指向的文件的位置。 fscanf(), 按照格式要求从文件中读取数据 调用形式: fscanf(文件型指针变量,格式控制,输入列表); fscanf(flFile,"%ld,%s原创 2015-12-29 15:30:46 · 374 阅读 · 0 评论 -
【LVL1_6_c】我对(一维数组名、二维数组名、&数组名 )的初步认识和理解。
int a[3] = {1, 2,3}; 1.重点一 不管是几维数组,数组名a永远都代表第一个元素的地址 (1)a&a[0]、a+0&a[0] (2)数组名+1,就是第二个元素的地址 (虽然数组首地址和元素首地址的值一样,但意义完全不同) ——————————————————————————————— 2.重点二 a[0][0] 二维数组还是个一维数组, 只不过它的元素是——一原创 2015-12-28 23:52:45 · 420 阅读 · 0 评论 -
【LVL1_6_c】 指针数组 数组指针 的区别(仅仅是初步学习理解)
一、 指针数组: 指针类型的数组(就像有指存整型的、存浮点型的、所以存指针的数组) 其数组元素都是指针变量。 (大白话——指针数组是 有一大堆指针变量的数组) 比如 int * a[4]; 【1】int*是类型名 . 【2】a[4]是定义了一段连续的存储空间,存储的元素都是 int *类型。 ———————————————————————————————原创 2015-12-28 20:11:08 · 267 阅读 · 0 评论 -
【LVL1_5_c】【课后练习】【7】自己造一个strlen()函数,求字符串的长度
// ConsoleApplication2.cpp : 定义控制台应用程序的入口 #include "stdafx.h" #include #include int MyStrlen(char ArrS[]); int _tmain(int argc, _TCHAR* argv[]) { //提示用户输入字符数组 char ArrS[100]="0"; printf("请输入字符串:原创 2015-12-26 20:26:31 · 496 阅读 · 0 评论