自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

转载 【LVL1_6_c】【思考】X86 c语言结构体数据对齐的规则

数据对齐和CPU结构相关,其有利于CPU减少对内存的操作次数,提高存取效率。写程序的时候,不需要考虑对齐问题,编译器会替我们选择适合目标平台的对齐策略X86 CPU下C语言结构体的数据对齐规则:规则1数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小

2015-12-29 21:30:35 706

原创 【LVL1_7_c】【思考题】【7】以a+ r+ w+模式打开的文件都是可读可写的,哪种模式更适合用来改变文件已有内容?

r+打开时,文件内部读写位置指针指向文件头,可以通过文件随机定位函数freek()来把文件内部读写位置指针移动到指定位置修改文件内容a+同上,指向文件尾w+打开时 文件已经存在 则会破坏文件内原有的所有内容,因此不适合用来修改已有文件内容.

2015-12-29 21:04:14 1163

原创 【LVL1_7_c】【上机题】【1】使用动态数组,存放10个int类型数据,赋值,再遍历

// ConsoleApplication8.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include#includeint _tmain(int argc, _TCHAR* argv[]){ int len; int * arr; arr = (int *)malloc(sizeof(int)*10);

2015-12-29 16:16:07 545

原创 【LVL1_7_c】【思考题】【8】vs2013中使用gets_s()代替gets

gets()函数在获取输入时,如果无限输入会造成栈空间溢出,在程序返回时,不能正常的找到返回地址,程序将发生不可预测行为。在VS2013中 使用微软自有的gets_s()代替gets()char c[10]; gets_s(c,9);gets中第二个参数9为 为数组的长度10-1(因为末尾存放\0)

2015-12-29 15:44:57 596

原创 【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 376

原创 【LVL1_7_c】【思考题】【2】什么是溢出?什么是内存泄漏?

未编辑完成什么是溢出?什么是内存泄漏?申请分配了一块内从空间使用,程序运行完以后,这块空间不用了,却没有归还给系统,如此内存越用越少。申请→用完了不归还→越用越少。

2015-12-29 14:51:09 324

原创 【LVL1_7_c】【思考题】【1】什么是野指针 悬空指针

(1)什么是野指针?定义指针变量,却没有初始化,指向了一个随机的空间。(2)什么是悬空指针①使用free释放内存空间后,却没有将指针变量赋值为NULL,指针变量指向的一个未知空间。②从内存中删除一个对象或者返回时删除栈帧后,并不会改变相关的指针的值,该指针仍然指向原来的内存地址如何避免野指针悬空指针?1)凡是定义的指针变量初始化为NULL;

2015-12-29 14:32:45 409

原创 【LVL1_6_c】【思考题】【2】解释这些数据声明都代表的什么意思?

A部分(1)double * (*sp)[10](2)double (*arr[10])()(3)int * (*a)[10](4)long (*fun)(int)______________________________________________________________________________--答:第一步变量名先和谁结合,变量

2015-12-29 07:45:54 440

原创 【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 423

原创 【LVL1_6_c】 指针数组 数组指针 的区别(仅仅是初步学习理解)

一、指针数组:指针类型的数组(就像有指存整型的、存浮点型的、所以存指针的数组)其数组元素都是指针变量。(大白话——指针数组是  有一大堆指针变量的数组)比如int * a[4];【1】int*是类型名 .【2】a[4]是定义了一段连续的存储空间,存储的元素都是 int *类型。———————————————————————————————

2015-12-28 20:11:08 269

原创 【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 421

原创 【LVL1_5_c】【课后练习】【7】自己造一个strlen()函数,求字符串的长度

// ConsoleApplication2.cpp : 定义控制台应用程序的入口#include "stdafx.h"#include #includeint MyStrlen(char ArrS[]);int _tmain(int argc, _TCHAR* argv[]){ //提示用户输入字符数组 char ArrS[100]="0"; printf("请输入字符串:

2015-12-26 20:26:31 503

原创 【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#includeint char_search(

2015-12-26 19:46:15 532

原创 【LVL1_5_c】【课后练习】【5】 写一个可以倒置数组元素的函数.

// ConsoleApplication2.cpp : 定义控制台应用程序的入口#include "stdafx.h"#include #include#define N 10void invert(int array[],int n);int _tmain(int argc, _TCHAR* argv[]){ int array[N] = { 1, 2, 3, 4,

2015-12-26 17:01:00 650

原创 【LVL1_5_c】【课后练习】【4】 定义一个函数,交换两个数的值。(使用指针)

// ConsoleApplication2.cpp : 定义控制台应用程序的入口#include "stdafx.h"#include #includevoid nswap(int* nNum1, int* nNum2);int _tmain(int argc, _TCHAR* argv[]){ //用户输入数字 int nNum1, nNum2; printf("请输入数

2015-12-26 16:34:39 1223

原创 【LVL1_5_c】【课后练习】【3】 求两个数组的对应元素之和。

// ConsoleApplication2.cpp : 定义控制台应用程序的入口#include "stdafx.h"#include #includeint _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 341

原创 【LVL1_5_c】【课后练习】【1】 循环为数组赋值,然后使用指针输出。

环境:vs2013// ConsoleApplication2.cpp : 定义控制台应用程序的入口#include "stdafx.h"#include #include #define LENTH 10int _tmain(int argc, _TCHAR* argv[]){ //第一步 赋值 int a[LENTH] = { 0 }; int acc; fo

2015-12-26 14:50:20 509

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除